! function (t) {
  // 修复Node同构代码的问题
  if (typeof navigator === "undefined") {
    return;
  }

  function i(r) {
    if (e[r])
      return e[r].exports;
    var o = e[r] = {
      i: r,
      l: !1,
      exports: {}
    };
    return t[r].call(o.exports, o, o.exports, i),
      o.l = !0,
      o.exports
  }
  var e = {};
  i.m = t,
    i.c = e,
    i.d = function (t, e, r) {
      i.o(t, e) || Object.defineProperty(t, e, {
        configurable: !1,
        enumerable: !0,
        get: r
      })
    },
    i.n = function (t) {
      var e = t && t.__esModule ? function () {
          return t.default
        } :
        function () {
          return t
        };
      return i.d(e, "a", e),
        e
    },
    i.o = function (t, i) {
      return Object.prototype.hasOwnProperty.call(t, i)
    },
    i.p = "",
    i(i.s = 4)
}([function (t, i, e) {
  "use strict";

  function r() {
    this.live2DModel = null,
      this.modelMatrix = null,
      this.eyeBlink = null,
      this.physics = null,
      this.pose = null,
      this.debugMode = !1,
      this.initialized = !1,
      this.updating = !1,
      this.alpha = 1,
      this.accAlpha = 0,
      this.lipSync = !1,
      this.lipSyncValue = 0,
      this.accelX = 0,
      this.accelY = 0,
      this.accelZ = 0,
      this.dragX = 0,
      this.dragY = 0,
      this.startTimeMSec = null,
      this.mainMotionManager = new h,
      this.expressionManager = new h,
      this.motions = {},
      this.expressions = {},
      this.isTexLoaded = !1
  }

  function o() {
    AMotion.prototype.constructor.call(this),
      this.paramList = new Array
  }

  function n() {
    this.id = "",
      this.type = -1,
      this.value = null
  }

  function s() {
    this.nextBlinkTime = null,
      this.stateStartTime = null,
      this.blinkIntervalMsec = null,
      this.eyeState = g.STATE_FIRST,
      this.blinkIntervalMsec = 4e3,
      this.closingMotionMsec = 100,
      this.closedMotionMsec = 50,
      this.openingMotionMsec = 150,
      this.closeIfZero = !0,
      this.eyeID_L = "PARAM_EYE_L_OPEN",
      this.eyeID_R = "PARAM_EYE_R_OPEN"
  }

  function _() {
    this.tr = new Float32Array(16),
      this.identity()
  }

  function a(t, i) {
    _.prototype.constructor.call(this),
      this.width = t,
      this.height = i
  }

  function h() {
    MotionQueueManager.prototype.constructor.call(this),
      this.currentPriority = null,
      this.reservePriority = null,
      this.super = MotionQueueManager.prototype
  }

  function l() {
    this.physicsList = new Array,
      this.startTimeMSec = UtSystem.getUserTimeMSec()
  }

  function $() {
    this.lastTime = 0,
      this.lastModel = null,
      this.partsGroups = new Array
  }

  function u(t) {
    this.paramIndex = -1,
      this.partsIndex = -1,
      this.link = null,
      this.id = t
  }

  function p() {
    this.EPSILON = .01,
      this.faceTargetX = 0,
      this.faceTargetY = 0,
      this.faceX = 0,
      this.faceY = 0,
      this.faceVX = 0,
      this.faceVY = 0,
      this.lastTimeSec = 0
  }

  function f() {
    _.prototype.constructor.call(this),
      this.screenLeft = null,
      this.screenRight = null,
      this.screenTop = null,
      this.screenBottom = null,
      this.maxLeft = null,
      this.maxRight = null,
      this.maxTop = null,
      this.maxBottom = null,
      this.max = Number.MAX_VALUE,
      this.min = 0
  }

  function c() {}
  var d = 0;
  r.prototype.getModelMatrix = function () {
      return this.modelMatrix
    },
    r.prototype.setAlpha = function (t) {
      t > .999 && (t = 1),
        t < .001 && (t = 0),
        this.alpha = t
    },
    r.prototype.getAlpha = function () {
      return this.alpha
    },
    r.prototype.isInitialized = function () {
      return this.initialized
    },
    r.prototype.setInitialized = function (t) {
      this.initialized = t
    },
    r.prototype.isUpdating = function () {
      return this.updating
    },
    r.prototype.setUpdating = function (t) {
      this.updating = t
    },
    r.prototype.getLive2DModel = function () {
      return this.live2DModel
    },
    r.prototype.setLipSync = function (t) {
      this.lipSync = t
    },
    r.prototype.setLipSyncValue = function (t) {
      this.lipSyncValue = t
    },
    r.prototype.setAccel = function (t, i, e) {
      this.accelX = t,
        this.accelY = i,
        this.accelZ = e
    },
    r.prototype.setDrag = function (t, i) {
      this.dragX = t,
        this.dragY = i
    },
    r.prototype.getMainMotionManager = function () {
      return this.mainMotionManager
    },
    r.prototype.getExpressionManager = function () {
      return this.expressionManager
    },
    r.prototype.loadModelData = function (t, i) {
      var e = c.getPlatformManager();
      this.debugMode && e.log("Load model : " + t);
      var r = this;
      e.loadLive2DModel(t, function (t) {
        if (r.live2DModel = t,
          r.live2DModel.saveParam(),
          0 != Live2D.getError())
          return void console.error("Error : Failed to loadModelData().");
        r.modelMatrix = new a(r.live2DModel.getCanvasWidth(), r.live2DModel.getCanvasHeight()),
          r.modelMatrix.setWidth(2),
          r.modelMatrix.setCenterPosition(0, 0),
          i(r.live2DModel)
      })
    },
    r.prototype.loadTexture = function (t, i, e) {
      d++;
      var r = c.getPlatformManager();
      this.debugMode && r.log("Load Texture : " + i);
      var o = this;
      r.loadTexture(this.live2DModel, t, i, function () {
        d--,
        0 == d && (o.isTexLoaded = !0),
          "function" == typeof e && e()
      })
    },
    r.prototype.loadMotion = function (t, i, e) {
      var r = c.getPlatformManager();
      this.debugMode && r.log("Load Motion : " + i);
      var o = null,
        n = this;
      r.loadBytes(i, function (i) {
        o = Live2DMotion.loadMotion(i),
          null != t && (n.motions[t] = o),
          e(o)
      })
    },
    r.prototype.loadExpression = function (t, i, e) {
      var r = c.getPlatformManager();
      this.debugMode && r.log("Load Expression : " + i);
      var n = this;
      r.loadBytes(i, function (i) {
        null != t && (n.expressions[t] = o.loadJson(i)),
          "function" == typeof e && e()
      })
    },
    r.prototype.loadPose = function (t, i) {
      var e = c.getPlatformManager();
      this.debugMode && e.log("Load Pose : " + t);
      var r = this;
      try {
        e.loadBytes(t, function (t) {
          r.pose = $.load(t),
            "function" == typeof i && i()
        })
      } catch (t) {
        console.warn(t)
      }
    },
    r.prototype.loadPhysics = function (t) {
      var i = c.getPlatformManager();
      this.debugMode && i.log("Load Physics : " + t);
      var e = this;
      try {
        i.loadBytes(t, function (t) {
          e.physics = l.load(t)
        })
      } catch (t) {
        console.warn(t)
      }
    },
    r.prototype.hitTestSimple = function (t, i, e) {
      if (null === this.live2DModel)
        return !1;
      var r = this.live2DModel.getDrawDataIndex(t);
      if (r < 0)
        return !1;
      for (var o = this.live2DModel.getTransformedPoints(r), n = this.live2DModel.getCanvasWidth(), s = 0, _ = this.live2DModel.getCanvasHeight(), a = 0, h = 0; h < o.length; h += 2) {
        var l = o[h],
          $ = o[h + 1];
        l < n && (n = l),
          l > s && (s = l),
          $ < _ && (_ = $),
          $ > a && (a = $)
      }
      var u = this.modelMatrix.invertTransformX(i),
        p = this.modelMatrix.invertTransformY(e);
      return n <= u && u <= s && _ <= p && p <= a
    },
    r.prototype.hitTestSimpleCustom = function (t, i, e, r) {
      return null !== this.live2DModel && (e >= t[0] && e <= i[0] && r <= t[1] && r >= i[1])
    },
    o.prototype = new AMotion,
    o.EXPRESSION_DEFAULT = "DEFAULT",
    o.TYPE_SET = 0,
    o.TYPE_ADD = 1,
    o.TYPE_MULT = 2,
    o.loadJson = function (t) {
      var i = new o,
        e = c.getPlatformManager(),
        r = e.jsonParseFromBytes(t);
      if (i.setFadeIn(parseInt(r.fade_in) > 0 ? parseInt(r.fade_in) : 1e3),
        i.setFadeOut(parseInt(r.fade_out) > 0 ? parseInt(r.fade_out) : 1e3),
        null == r.params)
        return i;
      var s = r.params,
        _ = s.length;
      i.paramList = [];
      for (var a = 0; a < _; a++) {
        var h = s[a],
          l = h.id.toString(),
          $ = parseFloat(h.val),
          u = o.TYPE_ADD,
          p = null != h.calc ? h.calc.toString() : "add";
        if ((u = "add" === p ? o.TYPE_ADD : "mult" === p ? o.TYPE_MULT : "set" === p ? o.TYPE_SET : o.TYPE_ADD) == o.TYPE_ADD) {
          var f = null == h.def ? 0 : parseFloat(h.def);
          $ -= f
        } else if (u == o.TYPE_MULT) {
          var f = null == h.def ? 1 : parseFloat(h.def);
          0 == f && (f = 1),
            $ /= f
        }
        var d = new n;
        d.id = l,
          d.type = u,
          d.value = $,
          i.paramList.push(d)
      }
      return i
    },
    o.prototype.updateParamExe = function (t, i, e, r) {
      for (var n = this.paramList.length - 1; n >= 0; --n) {
        var s = this.paramList[n];
        s.type == o.TYPE_ADD ? t.addToParamFloat(s.id, s.value, e) : s.type == o.TYPE_MULT ? t.multParamFloat(s.id, s.value, e) : s.type == o.TYPE_SET && t.setParamFloat(s.id, s.value, e)
      }
    },
    s.prototype.calcNextBlink = function () {
      return UtSystem.getUserTimeMSec() + Math.random() * (2 * this.blinkIntervalMsec - 1)
    },
    s.prototype.setInterval = function (t) {
      this.blinkIntervalMsec = t
    },
    s.prototype.setEyeMotion = function (t, i, e) {
      this.closingMotionMsec = t,
        this.closedMotionMsec = i,
        this.openingMotionMsec = e
    },
    s.prototype.updateParam = function (t) {
      var i, e = UtSystem.getUserTimeMSec(),
        r = 0;
      switch (this.eyeState) {
        case g.STATE_CLOSING:
          r = (e - this.stateStartTime) / this.closingMotionMsec,
            r >= 1 && (r = 1,
              this.eyeState = g.STATE_CLOSED,
              this.stateStartTime = e),
            i = 1 - r;
          break;
        case g.STATE_CLOSED:
          r = (e - this.stateStartTime) / this.closedMotionMsec,
            r >= 1 && (this.eyeState = g.STATE_OPENING,
              this.stateStartTime = e),
            i = 0;
          break;
        case g.STATE_OPENING:
          r = (e - this.stateStartTime) / this.openingMotionMsec,
            r >= 1 && (r = 1,
              this.eyeState = g.STATE_INTERVAL,
              this.nextBlinkTime = this.calcNextBlink()),
            i = r;
          break;
        case g.STATE_INTERVAL:
          this.nextBlinkTime < e && (this.eyeState = g.STATE_CLOSING,
              this.stateStartTime = e),
            i = 1;
          break;
        case g.STATE_FIRST:
        default:
          this.eyeState = g.STATE_INTERVAL,
            this.nextBlinkTime = this.calcNextBlink(),
            i = 1
      }
      this.closeIfZero || (i = -i),
        t.setParamFloat(this.eyeID_L, i),
        t.setParamFloat(this.eyeID_R, i)
    };
  var g = function () {};
  g.STATE_FIRST = "STATE_FIRST",
    g.STATE_INTERVAL = "STATE_INTERVAL",
    g.STATE_CLOSING = "STATE_CLOSING",
    g.STATE_CLOSED = "STATE_CLOSED",
    g.STATE_OPENING = "STATE_OPENING",
    _.mul = function (t, i, e) {
      var r, o, n, s = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
      for (r = 0; r < 4; r++)
        for (o = 0; o < 4; o++)
          for (n = 0; n < 4; n++)
            s[r + 4 * o] += t[r + 4 * n] * i[n + 4 * o];
      for (r = 0; r < 16; r++)
        e[r] = s[r]
    },
    _.prototype.identity = function () {
      for (var t = 0; t < 16; t++)
        this.tr[t] = t % 5 == 0 ? 1 : 0
    },
    _.prototype.getArray = function () {
      return this.tr
    },
    _.prototype.getCopyMatrix = function () {
      return new Float32Array(this.tr)
    },
    _.prototype.setMatrix = function (t) {
      if (null != this.tr && this.tr.length == this.tr.length)
        for (var i = 0; i < 16; i++)
          this.tr[i] = t[i]
    },
    _.prototype.getScaleX = function () {
      return this.tr[0]
    },
    _.prototype.getScaleY = function () {
      return this.tr[5]
    },
    _.prototype.transformX = function (t) {
      return this.tr[0] * t + this.tr[12]
    },
    _.prototype.transformY = function (t) {
      return this.tr[5] * t + this.tr[13]
    },
    _.prototype.invertTransformX = function (t) {
      return (t - this.tr[12]) / this.tr[0]
    },
    _.prototype.invertTransformY = function (t) {
      return (t - this.tr[13]) / this.tr[5]
    },
    _.prototype.multTranslate = function (t, i) {
      var e = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, t, i, 0, 1];
      _.mul(e, this.tr, this.tr)
    },
    _.prototype.translate = function (t, i) {
      this.tr[12] = t,
        this.tr[13] = i
    },
    _.prototype.translateX = function (t) {
      this.tr[12] = t
    },
    _.prototype.translateY = function (t) {
      this.tr[13] = t
    },
    _.prototype.multScale = function (t, i) {
      var e = [t, 0, 0, 0, 0, i, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1];
      _.mul(e, this.tr, this.tr)
    },
    _.prototype.scale = function (t, i) {
      this.tr[0] = t,
        this.tr[5] = i
    },
    a.prototype = new _,
    a.prototype.setPosition = function (t, i) {
      this.translate(t, i)
    },
    a.prototype.setCenterPosition = function (t, i) {
      var e = this.width * this.getScaleX(),
        r = this.height * this.getScaleY();
      this.translate(t - e / 2, i - r / 2)
    },
    a.prototype.top = function (t) {
      this.setY(t)
    },
    a.prototype.bottom = function (t) {
      var i = this.height * this.getScaleY();
      this.translateY(t - i)
    },
    a.prototype.left = function (t) {
      this.setX(t)
    },
    a.prototype.right = function (t) {
      var i = this.width * this.getScaleX();
      this.translateX(t - i)
    },
    a.prototype.centerX = function (t) {
      var i = this.width * this.getScaleX();
      this.translateX(t - i / 2)
    },
    a.prototype.centerY = function (t) {
      var i = this.height * this.getScaleY();
      this.translateY(t - i / 2)
    },
    a.prototype.setX = function (t) {
      this.translateX(t)
    },
    a.prototype.setY = function (t) {
      this.translateY(t)
    },
    a.prototype.setHeight = function (t) {
      var i = t / this.height,
        e = -i;
      this.scale(i, e)
    },
    a.prototype.setWidth = function (t) {
      var i = t / this.width,
        e = -i;
      this.scale(i, e)
    },
    h.prototype = new MotionQueueManager,
    h.prototype.getCurrentPriority = function () {
      return this.currentPriority
    },
    h.prototype.getReservePriority = function () {
      return this.reservePriority
    },
    h.prototype.reserveMotion = function (t) {
      return !(this.reservePriority >= t) && (!(this.currentPriority >= t) && (this.reservePriority = t,
        !0))
    },
    h.prototype.setReservePriority = function (t) {
      this.reservePriority = t
    },
    h.prototype.updateParam = function (t) {
      var i = MotionQueueManager.prototype.updateParam.call(this, t);
      return this.isFinished() && (this.currentPriority = 0),
        i
    },
    h.prototype.startMotionPrio = function (t, i) {
      return i == this.reservePriority && (this.reservePriority = 0),
        this.currentPriority = i,
        this.startMotion(t, !1)
    },
    l.load = function (t) {
      for (var i = new l, e = c.getPlatformManager(), r = e.jsonParseFromBytes(t), o = r.physics_hair, n = o.length, s = 0; s < n; s++) {
        var _ = o[s],
          a = new PhysicsHair,
          h = _.setup,
          $ = parseFloat(h.length),
          u = parseFloat(h.regist),
          p = parseFloat(h.mass);
        a.setup($, u, p);
        for (var f = _.src, d = f.length, g = 0; g < d; g++) {
          var y = f[g],
            m = y.id,
            T = PhysicsHair.Src.SRC_TO_X,
            P = y.ptype;
          "x" === P ? T = PhysicsHair.Src.SRC_TO_X : "y" === P ? T = PhysicsHair.Src.SRC_TO_Y : "angle" === P ? T = PhysicsHair.Src.SRC_TO_G_ANGLE : UtDebug.error("live2d", "Invalid parameter:PhysicsHair.Src");
          var S = parseFloat(y.scale),
            v = parseFloat(y.weight);
          a.addSrcParam(T, m, S, v)
        }
        for (var L = _.targets, M = L.length, g = 0; g < M; g++) {
          var E = L[g],
            m = E.id,
            T = PhysicsHair.Target.TARGET_FROM_ANGLE,
            P = E.ptype;
          "angle" === P ? T = PhysicsHair.Target.TARGET_FROM_ANGLE : "angle_v" === P ? T = PhysicsHair.Target.TARGET_FROM_ANGLE_V : UtDebug.error("live2d", "Invalid parameter:PhysicsHair.Target");
          var S = parseFloat(E.scale),
            v = parseFloat(E.weight);
          a.addTargetParam(T, m, S, v)
        }
        i.physicsList.push(a)
      }
      return i
    },
    l.prototype.updateParam = function (t) {
      for (var i = UtSystem.getUserTimeMSec() - this.startTimeMSec, e = 0; e < this.physicsList.length; e++)
        this.physicsList[e].update(t, i)
    },
    $.load = function (t) {
      for (var i = new $, e = c.getPlatformManager(), r = e.jsonParseFromBytes(t), o = r.parts_visible, n = o.length, s = 0; s < n; s++) {
        for (var _ = o[s], a = _.group, h = a.length, l = new Array, p = 0; p < h; p++) {
          var f = a[p],
            d = new u(f.id);
          if (l[p] = d,
            null != f.link) {
            var g = f.link,
              y = g.length;
            d.link = new Array;
            for (var m = 0; m < y; m++) {
              var T = new u(g[m]);
              d.link.push(T)
            }
          }
        }
        i.partsGroups.push(l)
      }
      return i
    },
    $.prototype.updateParam = function (t) {
      if (null != t) {
        t != this.lastModel && this.initParam(t),
          this.lastModel = t;
        var i = UtSystem.getUserTimeMSec(),
          e = 0 == this.lastTime ? 0 : (i - this.lastTime) / 1e3;
        this.lastTime = i,
          e < 0 && (e = 0);
        for (var r = 0; r < this.partsGroups.length; r++)
          this.normalizePartsOpacityGroup(t, this.partsGroups[r], e),
          this.copyOpacityOtherParts(t, this.partsGroups[r])
      }
    },
    $.prototype.initParam = function (t) {
      if (null != t)
        for (var i = 0; i < this.partsGroups.length; i++)
          for (var e = this.partsGroups[i], r = 0; r < e.length; r++) {
            e[r].initIndex(t);
            var o = e[r].partsIndex,
              n = e[r].paramIndex;
            if (!(o < 0)) {
              var s = 0 != t.getParamFloat(n);
              if (t.setPartsOpacity(o, s ? 1 : 0),
                t.setParamFloat(n, s ? 1 : 0),
                null != e[r].link)
                for (var _ = 0; _ < e[r].link.length; _++)
                  e[r].link[_].initIndex(t)
            }
          }
    },
    $.prototype.normalizePartsOpacityGroup = function (t, i, e) {
      for (var r = -1, o = 1, n = 0; n < i.length; n++) {
        var s = i[n].partsIndex,
          _ = i[n].paramIndex;
        if (!(s < 0) && 0 != t.getParamFloat(_)) {
          if (r >= 0)
            break;
          r = n,
            o = t.getPartsOpacity(s),
            o += e / .5,
            o > 1 && (o = 1)
        }
      }
      r < 0 && (r = 0,
        o = 1);
      for (var n = 0; n < i.length; n++) {
        var s = i[n].partsIndex;
        if (!(s < 0))
          if (r == n)
            t.setPartsOpacity(s, o);
          else {
            var a, h = t.getPartsOpacity(s);
            a = o < .5 ? -.5 * o / .5 + 1 : .5 * (1 - o) / .5;
            var l = (1 - a) * (1 - o);
            l > .15 && (a = 1 - .15 / (1 - o)),
              h > a && (h = a),
              t.setPartsOpacity(s, h)
          }
      }
    },
    $.prototype.copyOpacityOtherParts = function (t, i) {
      for (var e = 0; e < i.length; e++) {
        var r = i[e];
        if (null != r.link && !(r.partsIndex < 0))
          for (var o = t.getPartsOpacity(r.partsIndex), n = 0; n < r.link.length; n++) {
            var s = r.link[n];
            s.partsIndex < 0 || t.setPartsOpacity(s.partsIndex, o)
          }
      }
    },
    u.prototype.initIndex = function (t) {
      this.paramIndex = t.getParamIndex("VISIBLE:" + this.id),
        this.partsIndex = t.getPartsDataIndex(PartsDataID.getID(this.id)),
        t.setParamFloat(this.paramIndex, 1)
    },
    p.FRAME_RATE = 30,
    p.prototype.setPoint = function (t, i) {
      this.faceTargetX = t,
        this.faceTargetY = i
    },
    p.prototype.getX = function () {
      return this.faceX
    },
    p.prototype.getY = function () {
      return this.faceY
    },
    p.prototype.update = function () {
      var t = 40 / 7.5 / p.FRAME_RATE;
      if (0 == this.lastTimeSec)
        return void(this.lastTimeSec = UtSystem.getUserTimeMSec());
      var i = UtSystem.getUserTimeMSec(),
        e = (i - this.lastTimeSec) * p.FRAME_RATE / 1e3;
      this.lastTimeSec = i;
      var r = .15 * p.FRAME_RATE,
        o = e * t / r,
        n = this.faceTargetX - this.faceX,
        s = this.faceTargetY - this.faceY;
      if (!(Math.abs(n) <= this.EPSILON && Math.abs(s) <= this.EPSILON)) {
        var _ = Math.sqrt(n * n + s * s),
          a = t * n / _,
          h = t * s / _,
          l = a - this.faceVX,
          $ = h - this.faceVY,
          u = Math.sqrt(l * l + $ * $);
        (u < -o || u > o) && (l *= o / u,
          $ *= o / u,
          u = o),
        this.faceVX += l,
          this.faceVY += $;
        var f = .5 * (Math.sqrt(o * o + 16 * o * _ - 8 * o * _) - o),
          c = Math.sqrt(this.faceVX * this.faceVX + this.faceVY * this.faceVY);
        c > f && (this.faceVX *= f / c,
            this.faceVY *= f / c),
          this.faceX += this.faceVX,
          this.faceY += this.faceVY
      }
    },
    f.prototype = new _,
    f.prototype.getMaxScale = function () {
      return this.max
    },
    f.prototype.getMinScale = function () {
      return this.min
    },
    f.prototype.setMaxScale = function (t) {
      this.max = t
    },
    f.prototype.setMinScale = function (t) {
      this.min = t
    },
    f.prototype.isMaxScale = function () {
      return this.getScaleX() == this.max
    },
    f.prototype.isMinScale = function () {
      return this.getScaleX() == this.min
    },
    f.prototype.adjustTranslate = function (t, i) {
      this.tr[0] * this.maxLeft + (this.tr[12] + t) > this.screenLeft && (t = this.screenLeft - this.tr[0] * this.maxLeft - this.tr[12]),
        this.tr[0] * this.maxRight + (this.tr[12] + t) < this.screenRight && (t = this.screenRight - this.tr[0] * this.maxRight - this.tr[12]),
        this.tr[5] * this.maxTop + (this.tr[13] + i) < this.screenTop && (i = this.screenTop - this.tr[5] * this.maxTop - this.tr[13]),
        this.tr[5] * this.maxBottom + (this.tr[13] + i) > this.screenBottom && (i = this.screenBottom - this.tr[5] * this.maxBottom - this.tr[13]);
      var e = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, t, i, 0, 1];
      _.mul(e, this.tr, this.tr)
    },
    f.prototype.adjustScale = function (t, i, e) {
      var r = e * this.tr[0];
      r < this.min ? this.tr[0] > 0 && (e = this.min / this.tr[0]) : r > this.max && this.tr[0] > 0 && (e = this.max / this.tr[0]);
      var o = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, t, i, 0, 1],
        n = [e, 0, 0, 0, 0, e, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1],
        s = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -t, -i, 0, 1];
      _.mul(s, this.tr, this.tr),
        _.mul(n, this.tr, this.tr),
        _.mul(o, this.tr, this.tr)
    },
    f.prototype.setScreenRect = function (t, i, e, r) {
      this.screenLeft = t,
        this.screenRight = i,
        this.screenTop = r,
        this.screenBottom = e
    },
    f.prototype.setMaxScreenRect = function (t, i, e, r) {
      this.maxLeft = t,
        this.maxRight = i,
        this.maxTop = r,
        this.maxBottom = e
    },
    f.prototype.getScreenLeft = function () {
      return this.screenLeft
    },
    f.prototype.getScreenRight = function () {
      return this.screenRight
    },
    f.prototype.getScreenBottom = function () {
      return this.screenBottom
    },
    f.prototype.getScreenTop = function () {
      return this.screenTop
    },
    f.prototype.getMaxLeft = function () {
      return this.maxLeft
    },
    f.prototype.getMaxRight = function () {
      return this.maxRight
    },
    f.prototype.getMaxBottom = function () {
      return this.maxBottom
    },
    f.prototype.getMaxTop = function () {
      return this.maxTop
    },
    c.platformManager = null,
    c.getPlatformManager = function () {
      return c.platformManager
    },
    c.setPlatformManager = function (t) {
      c.platformManager = t
    },
    t.exports = {
      L2DTargetPoint: p,
      Live2DFramework: c,
      L2DViewMatrix: f,
      L2DPose: $,
      L2DPartsParam: u,
      L2DPhysics: l,
      L2DMotionManager: h,
      L2DModelMatrix: a,
      L2DMatrix44: _,
      EYE_STATE: g,
      L2DEyeBlink: s,
      L2DExpressionParam: n,
      L2DExpressionMotion: o,
      L2DBaseModel: r
    }
}, function (t, i, e) {
  "use strict";
  var r = {
    DEBUG_LOG: !1,
    DEBUG_MOUSE_LOG: !1,
    DEBUG_DRAW_HIT_AREA: !1,
    DEBUG_DRAW_ALPHA_MODEL: !1,
    VIEW_MAX_SCALE: 2,
    VIEW_MIN_SCALE: .8,
    VIEW_LOGICAL_LEFT: -1,
    VIEW_LOGICAL_RIGHT: 1,
    VIEW_LOGICAL_MAX_LEFT: -2,
    VIEW_LOGICAL_MAX_RIGHT: 2,
    VIEW_LOGICAL_MAX_BOTTOM: -2,
    VIEW_LOGICAL_MAX_TOP: 2,
    PRIORITY_NONE: 0,
    PRIORITY_IDLE: 1,
    PRIORITY_SLEEPY: 2,
    PRIORITY_NORMAL: 3,
    PRIORITY_FORCE: 4,
    MOTION_GROUP_IDLE: "idle",
    MOTION_GROUP_SLEEPY: "sleepy",
    MOTION_GROUP_TAP_BODY: "tap_body",
    MOTION_GROUP_FLICK_HEAD: "flick_head",
    MOTION_GROUP_PINCH_IN: "pinch_in",
    MOTION_GROUP_PINCH_OUT: "pinch_out",
    MOTION_GROUP_SHAKE: "shake",
    HIT_AREA_HEAD: "head",
    HIT_AREA_BODY: "body"
  };
  t.exports = r
}, function (t, i, e) {
  "use strict";

  function r(t) {
    n = t
  }

  function o() {
    return n
  }
  Object.defineProperty(i, "__esModule", {
      value: !0
    }),
    i.setContext = r,
    i.getContext = o;
  var n = void 0
}, function (t, i, e) {
  "use strict";

  function r() {}
  r.matrixStack = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1],
    r.depth = 0,
    r.currentMatrix = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1],
    r.tmp = new Array(16),
    r.reset = function () {
      this.depth = 0
    },
    r.loadIdentity = function () {
      for (var t = 0; t < 16; t++)
        this.currentMatrix[t] = t % 5 == 0 ? 1 : 0
    },
    r.push = function () {
      var t = (this.depth,
        16 * (this.depth + 1));
      this.matrixStack.length < t + 16 && (this.matrixStack.length = t + 16);
      for (var i = 0; i < 16; i++)
        this.matrixStack[t + i] = this.currentMatrix[i];
      this.depth++
    },
    r.pop = function () {
      --this.depth < 0 && (myError("Invalid matrix stack."),
        this.depth = 0);
      for (var t = 16 * this.depth, i = 0; i < 16; i++)
        this.currentMatrix[i] = this.matrixStack[t + i]
    },
    r.getMatrix = function () {
      return this.currentMatrix
    },
    r.multMatrix = function (t) {
      var i, e, r;
      for (i = 0; i < 16; i++)
        this.tmp[i] = 0;
      for (i = 0; i < 4; i++)
        for (e = 0; e < 4; e++)
          for (r = 0; r < 4; r++)
            this.tmp[i + 4 * e] += this.currentMatrix[i + 4 * r] * t[r + 4 * e];
      for (i = 0; i < 16; i++)
        this.currentMatrix[i] = this.tmp[i]
    },
    t.exports = r
}, function (t, i, e) {
  t.exports = e(5)
}, function (t, i, e) {
  "use strict";

  function r(t) {
    return t && t.__esModule ? t : {
      default: t
    }
  }

  function o(t) {
    C = document.getElementById(t),
      C.addEventListener && (window.addEventListener("click", g),
        window.addEventListener("mousedown", g),
        window.addEventListener("mousemove", g),
        window.addEventListener("mouseup", g),
        document.addEventListener("mouseout", g),
        window.addEventListener("touchstart", y),
        window.addEventListener("touchend", y),
        window.addEventListener("touchmove", y))
  }

  function n(t) {
    var i = C.width,
      e = C.height;
    N = new M.L2DTargetPoint;
    var r = e / i,
      o = w.default.VIEW_LOGICAL_LEFT,
      n = w.default.VIEW_LOGICAL_RIGHT,
      _ = -r,
      h = r;
    if (window.Live2D.captureFrame = !1,
      B = new M.L2DViewMatrix,
      B.setScreenRect(o, n, _, h),
      B.setMaxScreenRect(w.default.VIEW_LOGICAL_MAX_LEFT, w.default.VIEW_LOGICAL_MAX_RIGHT, w.default.VIEW_LOGICAL_MAX_BOTTOM, w.default.VIEW_LOGICAL_MAX_TOP),
      B.setMaxScale(w.default.VIEW_MAX_SCALE),
      B.setMinScale(w.default.VIEW_MIN_SCALE),
      U = new M.L2DMatrix44,
      U.multScale(1, i / e),
      G = new M.L2DMatrix44,
      G.multTranslate(-i / 2, -e / 2),
      G.multScale(2 / i, -2 / i),
      F = v(),
      (0,
        D.setContext)(F),
      !F)
      return console.error("Failed to create WebGL context."),
        void(window.WebGLRenderingContext && console.error("Your browser don't support WebGL, check https://get.webgl.org/ for futher information."));
    window.Live2D.setGL(F),
      F.clearColor(0, 0, 0, 0),
      a(t),
      s()
  }

  function s() {
    b || (b = !0,
      function t() {
        _();
        var i = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
        if (window.Live2D.captureFrame) {
          window.Live2D.captureFrame = !1;
          var e = document.createElement("a");
          document.body.appendChild(e),
            e.setAttribute("type", "hidden"),
            e.href = C.toDataURL(),
            e.download = window.Live2D.captureName || "live2d.png",
            e.click()
        }
        i(t, C)
      }())
  }

  function _() {
    O.default.reset(),
      O.default.loadIdentity(),
      N.update(),
      R.setDrag(N.getX(), N.getY()),
      F.clear(F.COLOR_BUFFER_BIT),
      O.default.multMatrix(U.getArray()),
      O.default.multMatrix(B.getArray()),
      O.default.push();
    for (var t = 0; t < R.numModels(); t++) {
      var i = R.getModel(t);
      if (null == i)
        return;
      i.initialized && !i.updating && (i.update(),
        i.draw(F))
    }
    O.default.pop()
  }

  function a(t) {
    R.reloadFlg = !0,
      R.count++,
      R.changeModel(F, t)
  }

  function h(t, i) {
    return t.x * i.x + t.y * i.y
  }

  function l(t, i) {
    var e = Math.sqrt(t * t + i * i);
    return {
      x: t / e,
      y: i / e
    }
  }

  function $(t, i, e) {
    function r(t, i) {
      return 180 * Math.acos(h({
        x: 0,
        y: 1
      }, l(t, i))) / Math.PI
    }
    if (i.x < e.left + e.width && i.y < e.top + e.height && i.x > e.left && i.y > e.top)
      return i;
    var o = t.x - i.x,
      n = t.y - i.y,
      s = r(o, n);
    i.x < t.x && (s = 360 - s);
    var _ = 360 - r(e.left - t.x, -1 * (e.top - t.y)),
      a = 360 - r(e.left - t.x, -1 * (e.top + e.height - t.y)),
      $ = r(e.left + e.width - t.x, -1 * (e.top - t.y)),
      u = r(e.left + e.width - t.x, -1 * (e.top + e.height - t.y)),
      p = n / o,
      f = {};
    if (s < $) {
      var c = e.top - t.y,
        d = c / p;
      f = {
        y: t.y + c,
        x: t.x + d
      }
    } else if (s < u) {
      var g = e.left + e.width - t.x,
        y = g * p;
      f = {
        y: t.y + y,
        x: t.x + g
      }
    } else if (s < a) {
      var m = e.top + e.height - t.y,
        T = m / p;
      f = {
        y: t.y + m,
        x: t.x + T
      }
    } else if (s < _) {
      var P = t.x - e.left,
        S = P * p;
      f = {
        y: t.y - S,
        x: t.x - P
      }
    } else {
      var v = e.top - t.y,
        L = v / p;
      f = {
        y: t.y + v,
        x: t.x + L
      }
    }
    return f
  }

  function u(t) {
    Y = !0;
    var i = C.getBoundingClientRect(),
      e = P(t.clientX - i.left),
      r = S(t.clientY - i.top),
      o = $({
        x: i.left + i.width / 2,
        y: i.top + i.height * X
      }, {
        x: t.clientX,
        y: t.clientY
      }, i),
      n = m(o.x - i.left),
      s = T(o.y - i.top);
    w.default.DEBUG_MOUSE_LOG && console.log("onMouseMove device( x:" + t.clientX + " y:" + t.clientY + " ) view( x:" + n + " y:" + s + ")"),
      k = e,
      V = r,
      N.setPoint(n, s)
  }

  function p(t) {
    Y = !0;
    var i = C.getBoundingClientRect(),
      e = P(t.clientX - i.left),
      r = S(t.clientY - i.top),
      o = $({
        x: i.left + i.width / 2,
        y: i.top + i.height * X
      }, {
        x: t.clientX,
        y: t.clientY
      }, i),
      n = m(o.x - i.left),
      s = T(o.y - i.top);
    w.default.DEBUG_MOUSE_LOG && console.log("onMouseDown device( x:" + t.clientX + " y:" + t.clientY + " ) view( x:" + n + " y:" + s + ")"),
      k = e,
      V = r
    // R.tapEvent(n, s)
  }

  function f(t) {
    var i = C.getBoundingClientRect(),
      e = P(t.clientX - i.left),
      r = S(t.clientY - i.top),
      o = $({
        x: i.left + i.width / 2,
        y: i.top + i.height * X
      }, {
        x: t.clientX,
        y: t.clientY
      }, i),
      n = m(o.x - i.left),
      s = T(o.y - i.top);
    w.default.DEBUG_MOUSE_LOG && console.log("onMouseMove device( x:" + t.clientX + " y:" + t.clientY + " ) view( x:" + n + " y:" + s + ")"),
      Y && (k = e,
        V = r,
        N.setPoint(n, s))
  }

  function c() {
    Y && (Y = !1),
      N.setPoint(0, 0)
  }

  function d() {
    w.default.DEBUG_LOG && console.log("Set Session Storage."),
      sessionStorage.setItem("Sleepy", "1")
  }

  function g(t) {
    if ("mousewheel" == t.type)
    ;
    else if ("mousedown" == t.type)
      p(t);
    else if ("mousemove" == t.type) {
      var i = sessionStorage.getItem("Sleepy");
      "1" === i && sessionStorage.setItem("Sleepy", "0"),
        u(t)
    } else if ("mouseup" == t.type) {
      if ("button" in t && 0 != t.button)
        return
    } else if ("mouseout" == t.type) {
      w.default.DEBUG_LOG && console.log("Mouse out Window."),
        c();
      var e = sessionStorage.getItem("SleepyTimer");
      window.clearTimeout(e),
        e = window.setTimeout(d, 5e4),
        sessionStorage.setItem("SleepyTimer", e)
    }
  }

  function y(t) {
    var i = t.touches[0];
    "touchstart" == t.type ? 1 == t.touches.length && u(i) : "touchmove" == t.type ? f(i) : "touchend" == t.type && c()
  }

  function m(t) {
    var i = G.transformX(t);
    return B.invertTransformX(i)
  }

  function T(t) {
    var i = G.transformY(t);
    return B.invertTransformY(i)
  }

  function P(t) {
    return G.transformX(t)
  }

  function S(t) {
    return G.transformY(t)
  }

  function v() {
    for (var t = ["webgl", "experimental-webgl", "webkit-3d", "moz-webgl"], i = 0; i < t.length; i++)
      try {
        var e = C.getContext(t[i], {
          premultipliedAlpha: !0
        });
        if (e)
          return e
      } catch (t) {}
    return null
  }

  function L(t, i, e) {
    X = void 0 === e ? .5 : e,
      o(t),
      n(i)
  }
  e(6);

  var M = e(0),
    E = e(8),
    A = r(E),
    I = e(1),
    w = r(I),
    x = e(3),
    O = r(x),
    D = e(2),
    R = (window.navigator.platform.toLowerCase(),
      new A.default),
    b = !1,
    F = null,
    C = null,
    N = null,
    B = null,
    U = null,
    G = null,
    Y = !1,
    k = 0,
    V = 0,
    X = .5;
  window.loadlive2d = L
}, function (t, i, e) {
  "use strict";
  (function (t) {
    ! function () {
      function i() {
        At || (this._$MT = null,
          this._$5S = null,
          this._$NP = 0,
          i._$42++,
          this._$5S = new Y(this))
      }

      function e(t) {
        if (!At) {
          this.clipContextList = new Array,
            this.glcontext = t.gl,
            this.dp_webgl = t,
            this.curFrameNo = 0,
            this.firstError_clipInNotUpdate = !0,
            this.colorBuffer = 0,
            this.isInitGLFBFunc = !1,
            this.tmpBoundsOnModel = new S,
            at.glContext.length > at.frameBuffers.length && (this.curFrameNo = this.getMaskRenderTexture()),
            this.tmpModelToViewMatrix = new R,
            this.tmpMatrix2 = new R,
            this.tmpMatrixForMask = new R,
            this.tmpMatrixForDraw = new R,
            this.CHANNEL_COLORS = new Array;
          var i = new A;
          i = new A,
            i.r = 0,
            i.g = 0,
            i.b = 0,
            i.a = 1,
            this.CHANNEL_COLORS.push(i),
            i = new A,
            i.r = 1,
            i.g = 0,
            i.b = 0,
            i.a = 0,
            this.CHANNEL_COLORS.push(i),
            i = new A,
            i.r = 0,
            i.g = 1,
            i.b = 0,
            i.a = 0,
            this.CHANNEL_COLORS.push(i),
            i = new A,
            i.r = 0,
            i.g = 0,
            i.b = 1,
            i.a = 0,
            this.CHANNEL_COLORS.push(i);
          for (var e = 0; e < this.CHANNEL_COLORS.length; e++)
            this.dp_webgl.setChannelFlagAsColor(e, this.CHANNEL_COLORS[e])
        }
      }

      function r(t, i, e) {
        this.clipIDList = new Array,
          this.clipIDList = e,
          this.clippingMaskDrawIndexList = new Array;
        for (var r = 0; r < e.length; r++)
          this.clippingMaskDrawIndexList.push(i.getDrawDataIndex(e[r]));
        this.clippedDrawContextList = new Array,
          this.isUsing = !0,
          this.layoutChannelNo = 0,
          this.layoutBounds = new S,
          this.allClippedDrawRect = new S,
          this.matrixForMask = new Float32Array(16),
          this.matrixForDraw = new Float32Array(16),
          this.owner = t
      }

      function o(t, i) {
        this._$gP = t,
          this.drawDataIndex = i
      }

      function n() {
        At || (this.color = null)
      }

      function s() {
        At || (this._$dP = null,
          this._$eo = null,
          this._$V0 = null,
          this._$dP = 1e3,
          this._$eo = 1e3,
          this._$V0 = 1,
          this._$a0())
      }

      function _() {}

      function a() {
        this._$r = null,
          this._$0S = null
      }

      function h() {
        At || (this.x = null,
          this.y = null,
          this.width = null,
          this.height = null)
      }

      function l(t) {
        At || et.prototype.constructor.call(this, t)
      }

      function $() {}

      function u(t) {
        At || et.prototype.constructor.call(this, t)
      }

      function p() {
        At || (this._$vo = null,
          this._$F2 = null,
          this._$ao = 400,
          this._$1S = 400,
          p._$42++)
      }

      function f() {
        At || (this.p1 = new c,
          this.p2 = new c,
          this._$Fo = 0,
          this._$Db = 0,
          this._$L2 = 0,
          this._$M2 = 0,
          this._$ks = 0,
          this._$9b = 0,
          this._$iP = 0,
          this._$iT = 0,
          this._$lL = new Array,
          this._$qP = new Array,
          this.setup(.3, .5, .1))
      }

      function c() {
        this._$p = 1,
          this.x = 0,
          this.y = 0,
          this.vx = 0,
          this.vy = 0,
          this.ax = 0,
          this.ay = 0,
          this.fx = 0,
          this.fy = 0,
          this._$s0 = 0,
          this._$70 = 0,
          this._$7L = 0,
          this._$HL = 0
      }

      function d(t, i, e) {
        this._$wL = null,
          this.scale = null,
          this._$V0 = null,
          this._$wL = t,
          this.scale = i,
          this._$V0 = e
      }

      function g(t, i, e, r) {
        d.prototype.constructor.call(this, i, e, r),
          this._$tL = null,
          this._$tL = t
      }

      function y(t, i, e) {
        this._$wL = null,
          this.scale = null,
          this._$V0 = null,
          this._$wL = t,
          this.scale = i,
          this._$V0 = e
      }

      function T(t, i, e, r) {
        y.prototype.constructor.call(this, i, e, r),
          this._$YP = null,
          this._$YP = t
      }

      function P() {
        At || (this._$fL = 0,
          this._$gL = 0,
          this._$B0 = 1,
          this._$z0 = 1,
          this._$qT = 0,
          this.reflectX = !1,
          this.reflectY = !1)
      }

      function S() {
        At || (this.x = null,
          this.y = null,
          this.width = null,
          this.height = null)
      }

      function v() {}

      function L() {
        At || (this.x = null,
          this.y = null)
      }

      function M() {
        At || (this._$gP = null,
          this._$dr = null,
          this._$GS = null,
          this._$qb = null,
          this._$Lb = null,
          this._$mS = null,
          this.clipID = null,
          this.clipIDList = new Array)
      }

      function E() {
        At || (this._$Eb = E._$ps,
          this._$lT = 1,
          this._$C0 = 1,
          this._$tT = 1,
          this._$WL = 1,
          this.culling = !1,
          this.matrix4x4 = new Float32Array(16),
          this.premultipliedAlpha = !1,
          this.anisotropy = 0,
          this.clippingProcess = E.CLIPPING_PROCESS_NONE,
          this.clipBufPre_clipContextMask = null,
          this.clipBufPre_clipContextDraw = null,
          this.CHANNEL_COLORS = new Array)
      }

      function A() {
        At || (this.a = 1,
          this.r = 1,
          this.g = 1,
          this.b = 1,
          this.scale = 1,
          this._$ho = 1,
          this.blendMode = at.L2D_COLOR_BLEND_MODE_MULT)
      }

      function I() {
        At || (this._$kP = null,
          this._$dr = null,
          this._$Ai = !0,
          this._$mS = null)
      }

      function w() {}

      function x() {
        At || (this._$VP = 0,
          this._$wL = null,
          this._$GP = null,
          this._$8o = x._$ds,
          this._$2r = -1,
          this._$O2 = 0,
          this._$ri = 0)
      }

      function O() {}

      function D() {
        At || (this._$Ob = null)
      }

      function R() {
        this.m = new Float32Array(16),
          this.identity()
      }

      function b(t) {
        At || et.prototype.constructor.call(this, t)
      }

      function F() {
        At || (this._$7 = 1,
          this._$f = 0,
          this._$H = 0,
          this._$g = 1,
          this._$k = 0,
          this._$w = 0,
          this._$hi = STATE_IDENTITY,
          this._$Z = _$pS)
      }

      function C() {
        At || (s.prototype.constructor.call(this),
          this.motions = new Array,
          this._$7r = null,
          this._$7r = C._$Co++,
          this._$D0 = 30,
          this._$yT = 0,
          this._$E = !0,
          this.loopFadeIn = !0,
          this._$AS = -1,
          _$a0())
      }

      function N() {
        this._$P = new Float32Array(100),
          this.size = 0
      }

      function B() {
        this._$4P = null,
          this._$I0 = null,
          this._$RP = null
      }

      function U() {}

      function G() {}

      function Y(t) {
        At || (this._$QT = !0,
          this._$co = -1,
          this._$qo = 0,
          this._$pb = new Array(Y._$is),
          this._$_2 = new Float32Array(Y._$is),
          this._$vr = new Float32Array(Y._$is),
          this._$Rr = new Float32Array(Y._$is),
          this._$Or = new Float32Array(Y._$is),
          this._$fs = new Float32Array(Y._$is),
          this._$Js = new Array(Y._$is),
          this._$3S = new Array,
          this._$aS = new Array,
          this._$Bo = null,
          this._$F2 = new Array,
          this._$db = new Array,
          this._$8b = new Array,
          this._$Hr = new Array,
          this._$Ws = null,
          this._$Vs = null,
          this._$Er = null,
          this._$Es = new Int16Array(U._$Qb),
          this._$ZP = new Float32Array(2 * U._$1r),
          this._$Ri = t,
          this._$b0 = Y._$HP++,
          this.clipManager = null,
          this.dp_webgl = null)
      }

      function k() {}

      function V() {
        At || (this._$12 = null,
          this._$bb = null,
          this._$_L = null,
          this._$jo = null,
          this._$iL = null,
          this._$0L = null,
          this._$Br = null,
          this._$Dr = null,
          this._$Cb = null,
          this._$mr = null,
          this._$_L = wt.STATE_FIRST,
          this._$Br = 4e3,
          this._$Dr = 100,
          this._$Cb = 50,
          this._$mr = 150,
          this._$jo = !0,
          this._$iL = "PARAM_EYE_L_OPEN",
          this._$0L = "PARAM_EYE_R_OPEN")
      }

      function X() {
        At || (E.prototype.constructor.call(this),
          this._$sb = new Int32Array(X._$As),
          this._$U2 = new Array,
          this.transform = null,
          this.gl = null,
          null == X._$NT && (X._$NT = X._$9r(256),
            X._$vS = X._$9r(256),
            X._$no = X._$vb(256)))
      }

      function z() {
        At || (I.prototype.constructor.call(this),
          this._$GS = null,
          this._$Y0 = null)
      }

      function H(t) {
        _t.prototype.constructor.call(this, t),
          this._$8r = I._$ur,
          this._$Yr = null,
          this._$Wr = null
      }

      function W() {
        At || (M.prototype.constructor.call(this),
          this._$gP = null,
          this._$dr = null,
          this._$GS = null,
          this._$qb = null,
          this._$Lb = null,
          this._$mS = null)
      }

      function j() {
        At || (this._$NL = null,
          this._$3S = null,
          this._$aS = null,
          j._$42++)
      }

      function q() {
        At || (i.prototype.constructor.call(this),
          this._$zo = new X)
      }

      function J() {
        At || (s.prototype.constructor.call(this),
          this.motions = new Array,
          this._$o2 = null,
          this._$7r = J._$Co++,
          this._$D0 = 30,
          this._$yT = 0,
          this._$E = !1,
          this.loopFadeIn = !0,
          this._$rr = -1,
          this._$eP = 0)
      }

      function Q(t, i) {
        return String.fromCharCode(t.getUint8(i))
      }

      function N() {
        this._$P = new Float32Array(100),
          this.size = 0
      }

      function B() {
        this._$4P = null,
          this._$I0 = null,
          this._$RP = null
      }

      function Z() {
        At || (I.prototype.constructor.call(this),
          this._$o = 0,
          this._$A = 0,
          this._$GS = null,
          this._$Eo = null)
      }

      function K(t) {
        _t.prototype.constructor.call(this, t),
          this._$8r = I._$ur,
          this._$Cr = null,
          this._$hr = null
      }

      function tt() {
        At || (this.visible = !0,
          this._$g0 = !1,
          this._$NL = null,
          this._$3S = null,
          this._$aS = null,
          tt._$42++)
      }

      function it(t) {
        this._$VS = null,
          this._$e0 = null,
          this._$e0 = t
      }

      function et(t) {
        At || (this.id = t)
      }

      function rt() {}

      function ot() {
        At || (this._$4S = null)
      }

      function nt(t, i) {
        this.canvas = t,
          this.context = i,
          this.viewport = new Array(0, 0, t.width, t.height),
          this._$6r = 1,
          this._$xP = 0,
          this._$3r = 1,
          this._$uP = 0,
          this._$Qo = -1,
          this.cacheImages = {}
      }

      function st() {
        At || (this._$TT = null,
          this._$LT = null,
          this._$FS = null,
          this._$wL = null)
      }

      function _t(t) {
        At || (this._$e0 = null,
          this._$IP = null,
          this._$JS = !1,
          this._$AT = !0,
          this._$e0 = t,
          this.totalScale = 1,
          this._$7s = 1,
          this.totalOpacity = 1)
      }

      function at() {}

      function ht() {}

      function lt(t) {
        At || (this._$ib = t)
      }

      function $t() {
        At || (W.prototype.constructor.call(this),
          this._$LP = -1,
          this._$d0 = 0,
          this._$Yo = 0,
          this._$JP = null,
          this._$5P = null,
          this._$BP = null,
          this._$Eo = null,
          this._$Qi = null,
          this._$6s = $t._$ms,
          this.culling = !0,
          this.gl_cacheImage = null,
          this.instanceNo = $t._$42++)
      }

      function ut(t) {
        Mt.prototype.constructor.call(this, t),
          this._$8r = W._$ur,
          this._$Cr = null,
          this._$hr = null
      }

      function pt() {
        At || (this.x = null,
          this.y = null)
      }

      function ft(t) {
        At || (i.prototype.constructor.call(this),
          this.drawParamWebGL = new mt(t),
          this.drawParamWebGL.setGL(at.getGL(t)))
      }

      function ct() {
        At || (this.motions = null,
          this._$eb = !1,
          this.motions = new Array)
      }

      function dt() {
        this._$w0 = null,
          this._$AT = !0,
          this._$9L = !1,
          this._$z2 = -1,
          this._$bs = -1,
          this._$Do = -1,
          this._$sr = null,
          this._$sr = dt._$Gs++
      }

      function gt() {
        this.m = new Array(1, 0, 0, 0, 1, 0, 0, 0, 1)
      }

      function yt(t) {
        At || et.prototype.constructor.call(this, t)
      }

      function mt(t) {
        At || (E.prototype.constructor.call(this),
          this.textures = new Array,
          this.transform = null,
          this.gl = null,
          this.glno = t,
          this.firstDraw = !0,
          this.anisotropyExt = null,
          this.maxAnisotropy = 0,
          this._$As = 32,
          this._$Gr = !1,
          this._$NT = null,
          this._$vS = null,
          this._$no = null,
          this.vertShader = null,
          this.fragShader = null,
          this.vertShaderOff = null,
          this.fragShaderOff = null)
      }

      function Tt(t, i, e) {
        return null == i && (i = t.createBuffer()),
          t.bindBuffer(t.ARRAY_BUFFER, i),
          t.bufferData(t.ARRAY_BUFFER, e, t.DYNAMIC_DRAW),
          i
      }

      function Pt(t, i, e) {
        return null == i && (i = t.createBuffer()),
          t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, i),
          t.bufferData(t.ELEMENT_ARRAY_BUFFER, e, t.DYNAMIC_DRAW),
          i
      }

      function St(t) {
        At || (this._$P = new Int8Array(8),
          this._$R0 = new DataView(this._$P.buffer),
          this._$3i = new Int8Array(1e3),
          this._$hL = 0,
          this._$v0 = 0,
          this._$S2 = 0,
          this._$Ko = new Array,
          this._$T = t,
          this._$F = 0)
      }

      function vt() {}

      function Lt() {}

      function Mt(t) {
        At || (this._$e0 = null,
          this._$IP = null,
          this._$Us = null,
          this._$7s = null,
          this._$IS = [!1],
          this._$VS = null,
          this._$AT = !0,
          this.baseOpacity = 1,
          this.clipBufPre_clipContext = null,
          this._$e0 = t)
      }

      function Et() {}
      var At = !0;
      i._$0s = 1,
        i._$4s = 2,
        i._$42 = 0,
        i._$62 = function (t, e) {
          try {
            if (e instanceof ArrayBuffer && (e = new DataView(e)),
              !(e instanceof DataView))
              throw new lt("_$SS#loadModel(b) / b _$x be DataView or ArrayBuffer");
            var r, o = new St(e),
              n = o._$ST(),
              s = o._$ST(),
              a = o._$ST();
            if (109 != n || 111 != s || 99 != a)
              throw new lt("_$gi _$C _$li , _$Q0 _$P0.");
            if (r = o._$ST(),
              o._$gr(r),
              r > G._$T7) {
              t._$NP |= i._$4s;
              throw new lt("_$gi _$C _$li , _$n0 _$_ version _$li ( SDK : " + G._$T7 + " < _$f0 : " + r + " )@_$SS#loadModel()\n")
            }
            var h = o._$nP();
            if (r >= G._$s7) {
              var l = o._$9T(),
                $ = o._$9T();
              if (-30584 != l || -30584 != $)
                throw t._$NP |= i._$0s,
                  new lt("_$gi _$C _$li , _$0 _$6 _$Ui.")
            }
            t._$KS(h);
            var u = t.getModelContext();
            u.setDrawParam(t.getDrawParam()),
              u.init()
          } catch (t) {
            _._$Rb(t)
          }
        },
        i.prototype._$KS = function (t) {
          this._$MT = t
        },
        i.prototype.getModelImpl = function () {
          return null == this._$MT && (this._$MT = new p,
              this._$MT._$zP()),
            this._$MT
        },
        i.prototype.getCanvasWidth = function () {
          return null == this._$MT ? 0 : this._$MT.getCanvasWidth()
        },
        i.prototype.getCanvasHeight = function () {
          return null == this._$MT ? 0 : this._$MT.getCanvasHeight()
        },
        i.prototype.getParamFloat = function (t) {
          return "number" != typeof t && (t = this._$5S.getParamIndex(u.getID(t))),
            this._$5S.getParamFloat(t)
        },
        i.prototype.setParamFloat = function (t, i, e) {
          "number" != typeof t && (t = this._$5S.getParamIndex(u.getID(t))),
            arguments.length < 3 && (e = 1),
            this._$5S.setParamFloat(t, this._$5S.getParamFloat(t) * (1 - e) + i * e)
        },
        i.prototype.addToParamFloat = function (t, i, e) {
          "number" != typeof t && (t = this._$5S.getParamIndex(u.getID(t))),
            arguments.length < 3 && (e = 1),
            this._$5S.setParamFloat(t, this._$5S.getParamFloat(t) + i * e)
        },
        i.prototype.multParamFloat = function (t, i, e) {
          "number" != typeof t && (t = this._$5S.getParamIndex(u.getID(t))),
            arguments.length < 3 && (e = 1),
            this._$5S.setParamFloat(t, this._$5S.getParamFloat(t) * (1 + (i - 1) * e))
        },
        i.prototype.getParamIndex = function (t) {
          return this._$5S.getParamIndex(u.getID(t))
        },
        i.prototype.loadParam = function () {
          this._$5S.loadParam()
        },
        i.prototype.saveParam = function () {
          this._$5S.saveParam()
        },
        i.prototype.init = function () {
          this._$5S.init()
        },
        i.prototype.update = function () {
          this._$5S.update()
        },
        i.prototype._$Rs = function () {
          return _._$li("_$60 _$PT _$Rs()"),
            -1
        },
        i.prototype._$Ds = function (t) {
          _._$li("_$60 _$PT _$SS#_$Ds() \n")
        },
        i.prototype._$K2 = function () {},
        i.prototype.draw = function () {},
        i.prototype.getModelContext = function () {
          return this._$5S
        },
        i.prototype._$s2 = function () {
          return this._$NP
        },
        i.prototype._$P7 = function (t, i, e, r) {
          var o = -1,
            n = 0,
            s = this;
          if (0 != e)
            if (1 == t.length) {
              var _ = t[0],
                a = 0 != s.getParamFloat(_),
                h = i[0],
                l = s.getPartsOpacity(h),
                $ = e / r;
              a ? (l += $) > 1 && (l = 1) : (l -= $) < 0 && (l = 0),
                s.setPartsOpacity(h, l)
            } else {
              for (var u = 0; u < t.length; u++) {
                var _ = t[u],
                  p = 0 != s.getParamFloat(_);
                if (p) {
                  if (o >= 0)
                    break;
                  o = u;
                  var h = i[u];
                  n = s.getPartsOpacity(h),
                    n += e / r,
                    n > 1 && (n = 1)
                }
              }
              o < 0 && (console.log("No _$wi _$q0/ _$U default[%s]", t[0]),
                o = 0,
                n = 1,
                s.loadParam(),
                s.setParamFloat(t[o], n),
                s.saveParam());
              for (var u = 0; u < t.length; u++) {
                var h = i[u];
                if (o == u)
                  s.setPartsOpacity(h, n);
                else {
                  var f, c = s.getPartsOpacity(h);
                  f = n < .5 ? -.5 * n / .5 + 1 : .5 * (1 - n) / .5;
                  var d = (1 - f) * (1 - n);
                  d > .15 && (f = 1 - .15 / (1 - n)),
                    c > f && (c = f),
                    s.setPartsOpacity(h, c)
                }
              }
            }
          else
            for (var u = 0; u < t.length; u++) {
              var _ = t[u],
                h = i[u],
                p = 0 != s.getParamFloat(_);
              s.setPartsOpacity(h, p ? 1 : 0)
            }
        },
        i.prototype.setPartsOpacity = function (t, i) {
          "number" != typeof t && (t = this._$5S.getPartsDataIndex(l.getID(t))),
            this._$5S.setPartsOpacity(t, i)
        },
        i.prototype.getPartsDataIndex = function (t) {
          return t instanceof l || (t = l.getID(t)),
            this._$5S.getPartsDataIndex(t)
        },
        i.prototype.getPartsOpacity = function (t) {
          return "number" != typeof t && (t = this._$5S.getPartsDataIndex(l.getID(t))),
            t < 0 ? 0 : this._$5S.getPartsOpacity(t)
        },
        i.prototype.getDrawParam = function () {},
        i.prototype.getDrawDataIndex = function (t) {
          return this._$5S.getDrawDataIndex(b.getID(t))
        },
        i.prototype.getDrawData = function (t) {
          return this._$5S.getDrawData(t)
        },
        i.prototype.getTransformedPoints = function (t) {
          var i = this._$5S._$C2(t);
          return i instanceof ut ? i.getTransformedPoints() : null
        },
        i.prototype.getIndexArray = function (t) {
          if (t < 0 || t >= this._$5S._$aS.length)
            return null;
          var i = this._$5S._$aS[t];
          return null != i && i.getType() == W._$wb && i instanceof $t ? i.getIndexArray() : null
        },
        e.CHANNEL_COUNT = 4,
        e.RENDER_TEXTURE_USE_MIPMAP = !1,
        e.NOT_USED_FRAME = -100,
        e.prototype._$L7 = function () {
          if (this.tmpModelToViewMatrix && (this.tmpModelToViewMatrix = null),
            this.tmpMatrix2 && (this.tmpMatrix2 = null),
            this.tmpMatrixForMask && (this.tmpMatrixForMask = null),
            this.tmpMatrixForDraw && (this.tmpMatrixForDraw = null),
            this.tmpBoundsOnModel && (this.tmpBoundsOnModel = null),
            this.CHANNEL_COLORS) {
            for (var t = this.CHANNEL_COLORS.length - 1; t >= 0; --t)
              this.CHANNEL_COLORS.splice(t, 1);
            this.CHANNEL_COLORS = []
          }
          this.releaseShader()
        },
        e.prototype.releaseShader = function () {
          for (var t = at.frameBuffers.length, i = 0; i < t; i++)
            this.gl.deleteFramebuffer(at.frameBuffers[i].framebuffer);
          at.frameBuffers = [],
            at.glContext = []
        },
        e.prototype.init = function (t, i, e) {
          for (var o = 0; o < i.length; o++) {
            var n = i[o].getClipIDList();
            if (null != n) {
              var s = this.findSameClip(n);
              null == s && (s = new r(this, t, n),
                this.clipContextList.push(s));
              var _ = i[o].getDrawDataID(),
                a = t.getDrawDataIndex(_);
              s.addClippedDrawData(_, a);
              e[o].clipBufPre_clipContext = s
            }
          }
        },
        e.prototype.getMaskRenderTexture = function () {
          var t = null;
          return t = this.dp_webgl.createFramebuffer(),
            at.frameBuffers[this.dp_webgl.glno] = t,
            this.dp_webgl.glno
        },
        e.prototype.setupClip = function (t, i) {
          for (var e = 0, r = 0; r < this.clipContextList.length; r++) {
            var o = this.clipContextList[r];
            this.calcClippedDrawTotalBounds(t, o),
              o.isUsing && e++
          }
          if (e > 0) {
            var n = i.gl.getParameter(i.gl.FRAMEBUFFER_BINDING),
              s = new Array(4);
            s[0] = 0,
              s[1] = 0,
              s[2] = i.gl.canvas.width,
              s[3] = i.gl.canvas.height,
              i.gl.viewport(0, 0, at.clippingMaskBufferSize, at.clippingMaskBufferSize),
              this.setupLayoutBounds(e),
              i.gl.bindFramebuffer(i.gl.FRAMEBUFFER, at.frameBuffers[this.curFrameNo].framebuffer),
              i.gl.clearColor(0, 0, 0, 0),
              i.gl.clear(i.gl.COLOR_BUFFER_BIT);
            for (var r = 0; r < this.clipContextList.length; r++) {
              var o = this.clipContextList[r],
                _ = o.allClippedDrawRect,
                a = (o.layoutChannelNo,
                  o.layoutBounds);
              this.tmpBoundsOnModel._$jL(_),
                this.tmpBoundsOnModel.expand(.05 * _.width, .05 * _.height);
              var h = a.width / this.tmpBoundsOnModel.width,
                l = a.height / this.tmpBoundsOnModel.height;
              this.tmpMatrix2.identity(),
                this.tmpMatrix2.translate(-1, -1, 0),
                this.tmpMatrix2.scale(2, 2, 1),
                this.tmpMatrix2.translate(a.x, a.y, 0),
                this.tmpMatrix2.scale(h, l, 1),
                this.tmpMatrix2.translate(-this.tmpBoundsOnModel.x, -this.tmpBoundsOnModel.y, 0),
                this.tmpMatrixForMask.setMatrix(this.tmpMatrix2.m),
                this.tmpMatrix2.identity(),
                this.tmpMatrix2.translate(a.x, a.y, 0),
                this.tmpMatrix2.scale(h, l, 1),
                this.tmpMatrix2.translate(-this.tmpBoundsOnModel.x, -this.tmpBoundsOnModel.y, 0),
                this.tmpMatrixForDraw.setMatrix(this.tmpMatrix2.m);
              for (var $ = this.tmpMatrixForMask.getArray(), u = 0; u < 16; u++)
                o.matrixForMask[u] = $[u];
              for (var p = this.tmpMatrixForDraw.getArray(), u = 0; u < 16; u++)
                o.matrixForDraw[u] = p[u];
              for (var f = o.clippingMaskDrawIndexList.length, c = 0; c < f; c++) {
                var d = o.clippingMaskDrawIndexList[c],
                  g = t.getDrawData(d),
                  y = t._$C2(d);
                i.setClipBufPre_clipContextForMask(o),
                  g.draw(i, t, y)
              }
            }
            i.gl.bindFramebuffer(i.gl.FRAMEBUFFER, n),
              i.setClipBufPre_clipContextForMask(null),
              i.gl.viewport(s[0], s[1], s[2], s[3])
          }
        },
        e.prototype.getColorBuffer = function () {
          return this.colorBuffer
        },
        e.prototype.findSameClip = function (t) {
          for (var i = 0; i < this.clipContextList.length; i++) {
            var e = this.clipContextList[i],
              r = e.clipIDList.length;
            if (r == t.length) {
              for (var o = 0, n = 0; n < r; n++)
                for (var s = e.clipIDList[n], _ = 0; _ < r; _++)
                  if (t[_] == s) {
                    o++;
                    break
                  }
              if (o == r)
                return e
            }
          }
          return null
        },
        e.prototype.calcClippedDrawTotalBounds = function (t, i) {
          for (var e = t._$Ri.getModelImpl().getCanvasWidth(), r = t._$Ri.getModelImpl().getCanvasHeight(), o = e > r ? e : r, n = o, s = o, _ = 0, a = 0, h = i.clippedDrawContextList.length, l = 0; l < h; l++) {
            var $ = i.clippedDrawContextList[l],
              u = $.drawDataIndex,
              p = t._$C2(u);
            if (p._$yo()) {
              for (var f = p.getTransformedPoints(), c = f.length, d = [], g = [], y = 0, m = U._$i2; m < c; m += U._$No)
                d[y] = f[m],
                g[y] = f[m + 1],
                y++;
              var T = Math.min.apply(null, d),
                P = Math.min.apply(null, g),
                S = Math.max.apply(null, d),
                v = Math.max.apply(null, g);
              T < n && (n = T),
                P < s && (s = P),
                S > _ && (_ = S),
                v > a && (a = v)
            }
          }
          if (n == o)
            i.allClippedDrawRect.x = 0,
            i.allClippedDrawRect.y = 0,
            i.allClippedDrawRect.width = 0,
            i.allClippedDrawRect.height = 0,
            i.isUsing = !1;
          else {
            var L = _ - n,
              M = a - s;
            i.allClippedDrawRect.x = n,
              i.allClippedDrawRect.y = s,
              i.allClippedDrawRect.width = L,
              i.allClippedDrawRect.height = M,
              i.isUsing = !0
          }
        },
        e.prototype.setupLayoutBounds = function (t) {
          var i = t / e.CHANNEL_COUNT,
            r = t % e.CHANNEL_COUNT;
          i = ~~i,
            r = ~~r;
          for (var o = 0, n = 0; n < e.CHANNEL_COUNT; n++) {
            var s = i + (n < r ? 1 : 0);
            if (0 == s)
            ;
            else if (1 == s) {
              var a = this.clipContextList[o++];
              a.layoutChannelNo = n,
                a.layoutBounds.x = 0,
                a.layoutBounds.y = 0,
                a.layoutBounds.width = 1,
                a.layoutBounds.height = 1
            } else if (2 == s)
              for (var h = 0; h < s; h++) {
                var l = h % 2,
                  $ = 0;
                l = ~~l;
                var a = this.clipContextList[o++];
                a.layoutChannelNo = n,
                  a.layoutBounds.x = .5 * l,
                  a.layoutBounds.y = 0,
                  a.layoutBounds.width = .5,
                  a.layoutBounds.height = 1
              }
            else if (s <= 4)
              for (var h = 0; h < s; h++) {
                var l = h % 2,
                  $ = h / 2;
                l = ~~l,
                  $ = ~~$;
                var a = this.clipContextList[o++];
                a.layoutChannelNo = n,
                  a.layoutBounds.x = .5 * l,
                  a.layoutBounds.y = .5 * $,
                  a.layoutBounds.width = .5,
                  a.layoutBounds.height = .5
              }
            else if (s <= 9)
              for (var h = 0; h < s; h++) {
                var l = h % 3,
                  $ = h / 3;
                l = ~~l,
                  $ = ~~$;
                var a = this.clipContextList[o++];
                a.layoutChannelNo = n,
                  a.layoutBounds.x = l / 3,
                  a.layoutBounds.y = $ / 3,
                  a.layoutBounds.width = 1 / 3,
                  a.layoutBounds.height = 1 / 3
              }
            else
              _._$li("_$6 _$0P mask count : %d", s)
          }
        },
        r.prototype.addClippedDrawData = function (t, i) {
          var e = new o(t, i);
          this.clippedDrawContextList.push(e)
        },
        s._$JT = function (t, i, e) {
          var r = t / i,
            o = e / i,
            n = o,
            s = 1 - (1 - o) * (1 - o),
            _ = 1 - (1 - n) * (1 - n),
            a = 1 / 3 * (1 - o) * s + (n * (2 / 3) + 1 / 3 * (1 - n)) * (1 - s),
            h = (n + 2 / 3 * (1 - n)) * _ + (o * (1 / 3) + 2 / 3 * (1 - o)) * (1 - _),
            l = 1 - 3 * h + 3 * a - 0,
            $ = 3 * h - 6 * a + 0,
            u = 3 * a - 0;
          if (r <= 0)
            return 0;
          if (r >= 1)
            return 1;
          var p = r,
            f = p * p;
          return l * (p * f) + $ * f + u * p + 0
        },
        s.prototype._$a0 = function () {},
        s.prototype.setFadeIn = function (t) {
          this._$dP = t
        },
        s.prototype.setFadeOut = function (t) {
          this._$eo = t
        },
        s.prototype._$pT = function (t) {
          this._$V0 = t
        },
        s.prototype.getFadeOut = function () {
          return this._$eo
        },
        s.prototype._$4T = function () {
          return this._$eo
        },
        s.prototype._$mT = function () {
          return this._$V0
        },
        s.prototype.getDurationMSec = function () {
          return -1
        },
        s.prototype.getLoopDurationMSec = function () {
          return -1
        },
        s.prototype.updateParam = function (t, i) {
          if (i._$AT && !i._$9L) {
            var e = w.getUserTimeMSec();
            if (i._$z2 < 0) {
              i._$z2 = e,
                i._$bs = e;
              var r = this.getDurationMSec();
              i._$Do < 0 && (i._$Do = r <= 0 ? -1 : i._$z2 + r)
            }
            var o = this._$V0;
            o = o * (0 == this._$dP ? 1 : ht._$r2((e - i._$bs) / this._$dP)) * (0 == this._$eo || i._$Do < 0 ? 1 : ht._$r2((i._$Do - e) / this._$eo)),
              0 <= o && o <= 1 || console.log("### assert!! ### "),
              this.updateParamExe(t, e, o, i),
              i._$Do > 0 && i._$Do < e && (i._$9L = !0)
          }
        },
        s.prototype.updateParamExe = function (t, i, e, r) {},
        _._$8s = 0,
        _._$fT = new Object,
        _.start = function (t) {
          var i = _._$fT[t];
          null == i && (i = new a,
              i._$r = t,
              _._$fT[t] = i),
            i._$0S = w.getSystemTimeMSec()
        },
        _.dump = function (t) {
          var i = _._$fT[t];
          if (null != i) {
            var e = w.getSystemTimeMSec(),
              r = e - i._$0S;
            return console.log(t + " : " + r + "ms"),
              r
          }
          return -1
        },
        _.end = function (t) {
          var i = _._$fT[t];
          if (null != i) {
            return w.getSystemTimeMSec() - i._$0S
          }
          return -1
        },
        _._$li = function (t, i) {
          console.log("_$li : " + t + "\n", i)
        },
        _._$Ji = function (t, i) {
          console.log(t, i)
        },
        _._$dL = function (t, i) {
          console.log(t, i),
            console.log("\n")
        },
        _._$KL = function (t, i) {
          for (var e = 0; e < i; e++)
            e % 16 == 0 && e > 0 ? console.log("\n") : e % 8 == 0 && e > 0 && console.log("  "),
            console.log("%02X ", 255 & t[e]);
          console.log("\n")
        },
        _._$nr = function (t, i, e) {
          console.log("%s\n", t);
          for (var r = i.length, o = 0; o < r; ++o)
            console.log("%5d", i[o]),
            console.log("%s\n", e),
            console.log(",");
          console.log("\n")
        },
        _._$Rb = function (t) {
          console.log("dump exception : " + t),
            console.log("stack :: " + t.stack)
        },
        h.prototype._$8P = function () {
          return .5 * (this.x + this.x + this.width)
        },
        h.prototype._$6P = function () {
          return .5 * (this.y + this.y + this.height)
        },
        h.prototype._$EL = function () {
          return this.x + this.width
        },
        h.prototype._$5T = function () {
          return this.y + this.height
        },
        h.prototype._$jL = function (t, i, e, r) {
          this.x = t,
            this.y = i,
            this.width = e,
            this.height = r
        },
        h.prototype._$jL = function (t) {
          this.x = t.x,
            this.y = t.y,
            this.width = t.width,
            this.height = t.height
        },
        l.prototype = new et,
        l._$tP = new Object,
        l._$27 = function () {
          l._$tP.clear()
        },
        l.getID = function (t) {
          var i = l._$tP[t];
          return null == i && (i = new l(t),
              l._$tP[t] = i),
            i
        },
        l.prototype._$3s = function () {
          return new l
        },
        u.prototype = new et,
        u._$tP = new Object,
        u._$27 = function () {
          u._$tP.clear()
        },
        u.getID = function (t) {
          var i = u._$tP[t];
          return null == i && (i = new u(t),
              u._$tP[t] = i),
            i
        },
        u.prototype._$3s = function () {
          return new u
        },
        p._$42 = 0,
        p.prototype._$zP = function () {
          null == this._$vo && (this._$vo = new ot),
            null == this._$F2 && (this._$F2 = new Array)
        },
        p.prototype.getCanvasWidth = function () {
          return this._$ao
        },
        p.prototype.getCanvasHeight = function () {
          return this._$1S
        },
        p.prototype._$F0 = function (t) {
          this._$vo = t._$nP(),
            this._$F2 = t._$nP(),
            this._$ao = t._$6L(),
            this._$1S = t._$6L()
        },
        p.prototype._$6S = function (t) {
          this._$F2.push(t)
        },
        p.prototype._$Xr = function () {
          return this._$F2
        },
        p.prototype._$E2 = function () {
          return this._$vo
        },
        f.prototype.setup = function (t, i, e) {
          this._$ks = this._$Yb(),
            this.p2._$xT(),
            3 == arguments.length && (this._$Fo = t,
              this._$L2 = i,
              this.p1._$p = e,
              this.p2._$p = e,
              this.p2.y = t,
              this.setup())
        },
        f.prototype.getPhysicsPoint1 = function () {
          return this.p1
        },
        f.prototype.getPhysicsPoint2 = function () {
          return this.p2
        },
        f.prototype._$qr = function () {
          return this._$Db
        },
        f.prototype._$pr = function (t) {
          this._$Db = t
        },
        f.prototype._$5r = function () {
          return this._$M2
        },
        f.prototype._$Cs = function () {
          return this._$9b
        },
        f.prototype._$Yb = function () {
          return -180 * Math.atan2(this.p1.x - this.p2.x, -(this.p1.y - this.p2.y)) / Math.PI
        },
        f.prototype.addSrcParam = function (t, i, e, r) {
          var o = new g(t, i, e, r);
          this._$lL.push(o)
        },
        f.prototype.addTargetParam = function (t, i, e, r) {
          var o = new T(t, i, e, r);
          this._$qP.push(o)
        },
        f.prototype.update = function (t, i) {
          if (0 == this._$iP)
            return this._$iP = this._$iT = i,
              void(this._$Fo = Math.sqrt((this.p1.x - this.p2.x) * (this.p1.x - this.p2.x) + (this.p1.y - this.p2.y) * (this.p1.y - this.p2.y)));
          var e = (i - this._$iT) / 1e3;
          if (0 != e) {
            for (var r = this._$lL.length - 1; r >= 0; --r) {
              this._$lL[r]._$oP(t, this)
            }
            this._$oo(t, e),
              this._$M2 = this._$Yb(),
              this._$9b = (this._$M2 - this._$ks) / e,
              this._$ks = this._$M2
          }
          for (var r = this._$qP.length - 1; r >= 0; --r) {
            this._$qP[r]._$YS(t, this)
          }
          this._$iT = i
        },
        f.prototype._$oo = function (t, i) {
          i < .033 && (i = .033);
          var e = 1 / i;
          this.p1.vx = (this.p1.x - this.p1._$s0) * e,
            this.p1.vy = (this.p1.y - this.p1._$70) * e,
            this.p1.ax = (this.p1.vx - this.p1._$7L) * e,
            this.p1.ay = (this.p1.vy - this.p1._$HL) * e,
            this.p1.fx = this.p1.ax * this.p1._$p,
            this.p1.fy = this.p1.ay * this.p1._$p,
            this.p1._$xT();
          var r, o, n = -Math.atan2(this.p1.y - this.p2.y, this.p1.x - this.p2.x),
            s = Math.cos(n),
            _ = Math.sin(n),
            a = 9.8 * this.p2._$p,
            h = this._$Db * Lt._$bS,
            l = a * Math.cos(n - h);
          r = l * _,
            o = l * s;
          var $ = -this.p1.fx * _ * _,
            u = -this.p1.fy * _ * s,
            p = -this.p2.vx * this._$L2,
            f = -this.p2.vy * this._$L2;
          this.p2.fx = r + $ + p,
            this.p2.fy = o + u + f,
            this.p2.ax = this.p2.fx / this.p2._$p,
            this.p2.ay = this.p2.fy / this.p2._$p,
            this.p2.vx += this.p2.ax * i,
            this.p2.vy += this.p2.ay * i,
            this.p2.x += this.p2.vx * i,
            this.p2.y += this.p2.vy * i;
          var c = Math.sqrt((this.p1.x - this.p2.x) * (this.p1.x - this.p2.x) + (this.p1.y - this.p2.y) * (this.p1.y - this.p2.y));
          this.p2.x = this.p1.x + this._$Fo * (this.p2.x - this.p1.x) / c,
            this.p2.y = this.p1.y + this._$Fo * (this.p2.y - this.p1.y) / c,
            this.p2.vx = (this.p2.x - this.p2._$s0) * e,
            this.p2.vy = (this.p2.y - this.p2._$70) * e,
            this.p2._$xT()
        },
        c.prototype._$xT = function () {
          this._$s0 = this.x,
            this._$70 = this.y,
            this._$7L = this.vx,
            this._$HL = this.vy
        },
        d.prototype._$oP = function (t, i) {},
        g.prototype = new d,
        g.prototype._$oP = function (t, i) {
          var e = this.scale * t.getParamFloat(this._$wL),
            r = i.getPhysicsPoint1();
          switch (this._$tL) {
            default:
            case f.Src.SRC_TO_X:
              r.x = r.x + (e - r.x) * this._$V0;
              break;
            case f.Src.SRC_TO_Y:
              r.y = r.y + (e - r.y) * this._$V0;
              break;
            case f.Src.SRC_TO_G_ANGLE:
              var o = i._$qr();
              o += (e - o) * this._$V0,
                i._$pr(o)
          }
        },
        y.prototype._$YS = function (t, i) {},
        T.prototype = new y,
        T.prototype._$YS = function (t, i) {
          switch (this._$YP) {
            default:
            case f.Target.TARGET_FROM_ANGLE:
              t.setParamFloat(this._$wL, this.scale * i._$5r(), this._$V0);
              break;
            case f.Target.TARGET_FROM_ANGLE_V:
              t.setParamFloat(this._$wL, this.scale * i._$Cs(), this._$V0)
          }
        },
        f.Src = function () {},
        f.Src.SRC_TO_X = "SRC_TO_X",
        f.Src.SRC_TO_Y = "SRC_TO_Y",
        f.Src.SRC_TO_G_ANGLE = "SRC_TO_G_ANGLE",
        f.Target = function () {},
        f.Target.TARGET_FROM_ANGLE = "TARGET_FROM_ANGLE",
        f.Target.TARGET_FROM_ANGLE_V = "TARGET_FROM_ANGLE_V",
        P.prototype.init = function (t) {
          this._$fL = t._$fL,
            this._$gL = t._$gL,
            this._$B0 = t._$B0,
            this._$z0 = t._$z0,
            this._$qT = t._$qT,
            this.reflectX = t.reflectX,
            this.reflectY = t.reflectY
        },
        P.prototype._$F0 = function (t) {
          this._$fL = t._$_T(),
            this._$gL = t._$_T(),
            this._$B0 = t._$_T(),
            this._$z0 = t._$_T(),
            this._$qT = t._$_T(),
            t.getFormatVersion() >= G.LIVE2D_FORMAT_VERSION_V2_10_SDK2 && (this.reflectX = t._$po(),
              this.reflectY = t._$po())
        },
        P.prototype._$e = function () {};
      var It = function () {};
      It._$ni = function (t, i, e, r, o, n, s, _, a) {
          var h = s * n - _ * o;
          if (0 == h)
            return null;
          var l, $ = ((t - e) * n - (i - r) * o) / h;
          return l = 0 != o ? (t - e - $ * s) / o : (i - r - $ * _) / n,
            isNaN(l) && (l = (t - e - $ * s) / o,
              isNaN(l) && (l = (i - r - $ * _) / n),
              isNaN(l) && (console.log("a is NaN @UtVector#_$ni() "),
                console.log("v1x : " + o),
                console.log("v1x != 0 ? " + (0 != o)))),
            null == a ? new Array(l, $) : (a[0] = l,
              a[1] = $,
              a)
        },
        S.prototype._$8P = function () {
          return this.x + .5 * this.width
        },
        S.prototype._$6P = function () {
          return this.y + .5 * this.height
        },
        S.prototype._$EL = function () {
          return this.x + this.width
        },
        S.prototype._$5T = function () {
          return this.y + this.height
        },
        S.prototype._$jL = function (t, i, e, r) {
          this.x = t,
            this.y = i,
            this.width = e,
            this.height = r
        },
        S.prototype._$jL = function (t) {
          this.x = t.x,
            this.y = t.y,
            this.width = t.width,
            this.height = t.height
        },
        S.prototype.contains = function (t, i) {
          return this.x <= this.x && this.y <= this.y && this.x <= this.x + this.width && this.y <= this.y + this.height
        },
        S.prototype.expand = function (t, i) {
          this.x -= t,
            this.y -= i,
            this.width += 2 * t,
            this.height += 2 * i
        },
        v._$Z2 = function (t, i, e, r) {
          var o = i._$Q2(t, e),
            n = t._$vs(),
            s = t._$Tr();
          if (i._$zr(n, s, o),
            o <= 0)
            return r[n[0]];
          if (1 == o) {
            var _ = r[n[0]],
              a = r[n[1]],
              h = s[0];
            return _ + (a - _) * h | 0
          }
          if (2 == o) {
            var _ = r[n[0]],
              a = r[n[1]],
              l = r[n[2]],
              $ = r[n[3]],
              h = s[0],
              u = s[1],
              p = _ + (a - _) * h | 0,
              f = l + ($ - l) * h | 0;
            return p + (f - p) * u | 0
          }
          if (3 == o) {
            var c = r[n[0]],
              d = r[n[1]],
              g = r[n[2]],
              y = r[n[3]],
              m = r[n[4]],
              T = r[n[5]],
              P = r[n[6]],
              S = r[n[7]],
              h = s[0],
              u = s[1],
              v = s[2],
              _ = c + (d - c) * h | 0,
              a = g + (y - g) * h | 0,
              l = m + (T - m) * h | 0,
              $ = P + (S - P) * h | 0,
              p = _ + (a - _) * u | 0,
              f = l + ($ - l) * u | 0;
            return p + (f - p) * v | 0
          }
          if (4 == o) {
            var L = r[n[0]],
              M = r[n[1]],
              E = r[n[2]],
              A = r[n[3]],
              I = r[n[4]],
              w = r[n[5]],
              x = r[n[6]],
              O = r[n[7]],
              D = r[n[8]],
              R = r[n[9]],
              b = r[n[10]],
              F = r[n[11]],
              C = r[n[12]],
              N = r[n[13]],
              B = r[n[14]],
              U = r[n[15]],
              h = s[0],
              u = s[1],
              v = s[2],
              G = s[3],
              c = L + (M - L) * h | 0,
              d = E + (A - E) * h | 0,
              g = I + (w - I) * h | 0,
              y = x + (O - x) * h | 0,
              m = D + (R - D) * h | 0,
              T = b + (F - b) * h | 0,
              P = C + (N - C) * h | 0,
              S = B + (U - B) * h | 0,
              _ = c + (d - c) * u | 0,
              a = g + (y - g) * u | 0,
              l = m + (T - m) * u | 0,
              $ = P + (S - P) * u | 0,
              p = _ + (a - _) * v | 0,
              f = l + ($ - l) * v | 0;
            return p + (f - p) * G | 0
          }
          for (var Y = 1 << o, k = new Float32Array(Y), V = 0; V < Y; V++) {
            for (var X = V, z = 1, H = 0; H < o; H++)
              z *= X % 2 == 0 ? 1 - s[H] : s[H],
              X /= 2;
            k[V] = z
          }
          for (var W = new Float32Array(Y), j = 0; j < Y; j++)
            W[j] = r[n[j]];
          for (var q = 0, j = 0; j < Y; j++)
            q += k[j] * W[j];
          return q + .5 | 0
        },
        v._$br = function (t, i, e, r) {
          var o = i._$Q2(t, e),
            n = t._$vs(),
            s = t._$Tr();
          if (i._$zr(n, s, o),
            o <= 0)
            return r[n[0]];
          if (1 == o) {
            var _ = r[n[0]],
              a = r[n[1]],
              h = s[0];
            return _ + (a - _) * h
          }
          if (2 == o) {
            var _ = r[n[0]],
              a = r[n[1]],
              l = r[n[2]],
              $ = r[n[3]],
              h = s[0],
              u = s[1];
            return (1 - u) * (_ + (a - _) * h) + u * (l + ($ - l) * h)
          }
          if (3 == o) {
            var p = r[n[0]],
              f = r[n[1]],
              c = r[n[2]],
              d = r[n[3]],
              g = r[n[4]],
              y = r[n[5]],
              m = r[n[6]],
              T = r[n[7]],
              h = s[0],
              u = s[1],
              P = s[2];
            return (1 - P) * ((1 - u) * (p + (f - p) * h) + u * (c + (d - c) * h)) + P * ((1 - u) * (g + (y - g) * h) + u * (m + (T - m) * h))
          }
          if (4 == o) {
            var S = r[n[0]],
              v = r[n[1]],
              L = r[n[2]],
              M = r[n[3]],
              E = r[n[4]],
              A = r[n[5]],
              I = r[n[6]],
              w = r[n[7]],
              x = r[n[8]],
              O = r[n[9]],
              D = r[n[10]],
              R = r[n[11]],
              b = r[n[12]],
              F = r[n[13]],
              C = r[n[14]],
              N = r[n[15]],
              h = s[0],
              u = s[1],
              P = s[2],
              B = s[3];
            return (1 - B) * ((1 - P) * ((1 - u) * (S + (v - S) * h) + u * (L + (M - L) * h)) + P * ((1 - u) * (E + (A - E) * h) + u * (I + (w - I) * h))) + B * ((1 - P) * ((1 - u) * (x + (O - x) * h) + u * (D + (R - D) * h)) + P * ((1 - u) * (b + (F - b) * h) + u * (C + (N - C) * h)))
          }
          for (var U = 1 << o, G = new Float32Array(U), Y = 0; Y < U; Y++) {
            for (var k = Y, V = 1, X = 0; X < o; X++)
              V *= k % 2 == 0 ? 1 - s[X] : s[X],
              k /= 2;
            G[Y] = V
          }
          for (var z = new Float32Array(U), H = 0; H < U; H++)
            z[H] = r[n[H]];
          for (var W = 0, H = 0; H < U; H++)
            W += G[H] * z[H];
          return W
        },
        v._$Vr = function (t, i, e, r, o, n, s, _) {
          var a = i._$Q2(t, e),
            h = t._$vs(),
            l = t._$Tr();
          i._$zr(h, l, a);
          var $ = 2 * r,
            u = s;
          if (a <= 0) {
            var p = h[0],
              f = o[p];
            if (2 == _ && 0 == s)
              w._$jT(f, 0, n, 0, $);
            else
              for (var c = 0; c < $;)
                n[u] = f[c++],
                n[u + 1] = f[c++],
                u += _
          } else if (1 == a)
            for (var f = o[h[0]], d = o[h[1]], g = l[0], y = 1 - g, c = 0; c < $;)
              n[u] = f[c] * y + d[c] * g,
              ++c,
              n[u + 1] = f[c] * y + d[c] * g,
              ++c,
              u += _;
          else if (2 == a)
            for (var f = o[h[0]], d = o[h[1]], m = o[h[2]], T = o[h[3]], g = l[0], P = l[1], y = 1 - g, S = 1 - P, v = S * y, L = S * g, M = P * y, E = P * g, c = 0; c < $;)
              n[u] = v * f[c] + L * d[c] + M * m[c] + E * T[c],
              ++c,
              n[u + 1] = v * f[c] + L * d[c] + M * m[c] + E * T[c],
              ++c,
              u += _;
          else if (3 == a)
            for (var A = o[h[0]], I = o[h[1]], x = o[h[2]], O = o[h[3]], D = o[h[4]], R = o[h[5]], b = o[h[6]], F = o[h[7]], g = l[0], P = l[1], C = l[2], y = 1 - g, S = 1 - P, N = 1 - C, B = N * S * y, U = N * S * g, G = N * P * y, Y = N * P * g, k = C * S * y, V = C * S * g, X = C * P * y, z = C * P * g, c = 0; c < $;)
              n[u] = B * A[c] + U * I[c] + G * x[c] + Y * O[c] + k * D[c] + V * R[c] + X * b[c] + z * F[c],
              ++c,
              n[u + 1] = B * A[c] + U * I[c] + G * x[c] + Y * O[c] + k * D[c] + V * R[c] + X * b[c] + z * F[c],
              ++c,
              u += _;
          else if (4 == a)
            for (var H = o[h[0]], W = o[h[1]], j = o[h[2]], q = o[h[3]], J = o[h[4]], Q = o[h[5]], Z = o[h[6]], K = o[h[7]], tt = o[h[8]], it = o[h[9]], et = o[h[10]], rt = o[h[11]], ot = o[h[12]], nt = o[h[13]], st = o[h[14]], _t = o[h[15]], g = l[0], P = l[1], C = l[2], at = l[3], y = 1 - g, S = 1 - P, N = 1 - C, ht = 1 - at, lt = ht * N * S * y, $t = ht * N * S * g, ut = ht * N * P * y, pt = ht * N * P * g, ft = ht * C * S * y, ct = ht * C * S * g, dt = ht * C * P * y, gt = ht * C * P * g, yt = at * N * S * y, mt = at * N * S * g, Tt = at * N * P * y, Pt = at * N * P * g, St = at * C * S * y, vt = at * C * S * g, Lt = at * C * P * y, Mt = at * C * P * g, c = 0; c < $;)
              n[u] = lt * H[c] + $t * W[c] + ut * j[c] + pt * q[c] + ft * J[c] + ct * Q[c] + dt * Z[c] + gt * K[c] + yt * tt[c] + mt * it[c] + Tt * et[c] + Pt * rt[c] + St * ot[c] + vt * nt[c] + Lt * st[c] + Mt * _t[c],
              ++c,
              n[u + 1] = lt * H[c] + $t * W[c] + ut * j[c] + pt * q[c] + ft * J[c] + ct * Q[c] + dt * Z[c] + gt * K[c] + yt * tt[c] + mt * it[c] + Tt * et[c] + Pt * rt[c] + St * ot[c] + vt * nt[c] + Lt * st[c] + Mt * _t[c],
              ++c,
              u += _;
          else {
            for (var Et = 1 << a, At = new Float32Array(Et), It = 0; It < Et; It++) {
              for (var wt = It, xt = 1, Ot = 0; Ot < a; Ot++)
                xt *= wt % 2 == 0 ? 1 - l[Ot] : l[Ot],
                wt /= 2;
              At[It] = xt
            }
            for (var Dt = new Float32Array(Et), Rt = 0; Rt < Et; Rt++)
              Dt[Rt] = o[h[Rt]];
            for (var c = 0; c < $;) {
              for (var bt = 0, Ft = 0, Ct = c + 1, Rt = 0; Rt < Et; Rt++)
                bt += At[Rt] * Dt[Rt][c],
                Ft += At[Rt] * Dt[Rt][Ct];
              c += 2,
                n[u] = bt,
                n[u + 1] = Ft,
                u += _
            }
          }
        },
        L.prototype._$HT = function (t, i) {
          this.x = t,
            this.y = i
        },
        L.prototype._$HT = function (t) {
          this.x = t.x,
            this.y = t.y
        },
        M._$ur = -2,
        M._$ES = 500,
        M._$wb = 2,
        M._$8S = 3,
        M._$52 = M._$ES,
        M._$R2 = M._$ES,
        M._$or = function () {
          return M._$52
        },
        M._$Pr = function () {
          return M._$R2
        },
        M.prototype.convertClipIDForV2_11 = function (t) {
          var i = [];
          return null == t ? null : 0 == t.length ? null : /,/.test(t) ? i = t.id.split(",") : (i.push(t.id),
            i)
        },
        M.prototype._$F0 = function (t) {
          this._$gP = t._$nP(),
            this._$dr = t._$nP(),
            this._$GS = t._$nP(),
            this._$qb = t._$6L(),
            this._$Lb = t._$cS(),
            this._$mS = t._$Tb(),
            t.getFormatVersion() >= G._$T7 ? (this.clipID = t._$nP(),
              this.clipIDList = this.convertClipIDForV2_11(this.clipID)) : this.clipIDList = [],
            this._$MS(this._$Lb)
        },
        M.prototype.getClipIDList = function () {
          return this.clipIDList
        },
        M.prototype.init = function (t) {},
        M.prototype._$Nr = function (t, i) {
          if (i._$IS[0] = !1,
            i._$Us = v._$Z2(t, this._$GS, i._$IS, this._$Lb),
            at._$Zs)
          ;
          else if (i._$IS[0])
            return;
          i._$7s = v._$br(t, this._$GS, i._$IS, this._$mS)
        },
        M.prototype._$2b = function (t, i) {},
        M.prototype.getDrawDataID = function () {
          return this._$gP
        },
        M.prototype._$j2 = function (t) {
          this._$gP = t
        },
        M.prototype.getOpacity = function (t, i) {
          return i._$7s
        },
        M.prototype._$zS = function (t, i) {
          return i._$Us
        },
        M.prototype._$MS = function (t) {
          for (var i = t.length - 1; i >= 0; --i) {
            var e = t[i];
            e < M._$52 ? M._$52 = e : e > M._$R2 && (M._$R2 = e)
          }
        },
        M.prototype.getTargetBaseDataID = function () {
          return this._$dr
        },
        M.prototype._$gs = function (t) {
          this._$dr = t
        },
        M.prototype._$32 = function () {
          return null != this._$dr && this._$dr != yt._$2o()
        },
        M.prototype.preDraw = function (t, i, e) {},
        M.prototype.draw = function (t, i, e) {},
        M.prototype.getType = function () {},
        M.prototype._$B2 = function (t, i, e) {},
        E._$ps = 32,
        E.CLIPPING_PROCESS_NONE = 0,
        E.CLIPPING_PROCESS_OVERWRITE_ALPHA = 1,
        E.CLIPPING_PROCESS_MULTIPLY_ALPHA = 2,
        E.CLIPPING_PROCESS_DRAW = 3,
        E.CLIPPING_PROCESS_CLEAR_ALPHA = 4,
        E.prototype.setChannelFlagAsColor = function (t, i) {
          this.CHANNEL_COLORS[t] = i
        },
        E.prototype.getChannelFlagAsColor = function (t) {
          return this.CHANNEL_COLORS[t]
        },
        E.prototype._$ZT = function () {},
        E.prototype._$Uo = function (t, i, e, r, o, n, s) {},
        E.prototype._$Rs = function () {
          return -1
        },
        E.prototype._$Ds = function (t) {},
        E.prototype.setBaseColor = function (t, i, e, r) {
          t < 0 ? t = 0 : t > 1 && (t = 1),
            i < 0 ? i = 0 : i > 1 && (i = 1),
            e < 0 ? e = 0 : e > 1 && (e = 1),
            r < 0 ? r = 0 : r > 1 && (r = 1),
            this._$lT = t,
            this._$C0 = i,
            this._$tT = e,
            this._$WL = r
        },
        E.prototype._$WP = function (t) {
          this.culling = t
        },
        E.prototype.setMatrix = function (t) {
          for (var i = 0; i < 16; i++)
            this.matrix4x4[i] = t[i]
        },
        E.prototype._$IT = function () {
          return this.matrix4x4
        },
        E.prototype.setPremultipliedAlpha = function (t) {
          this.premultipliedAlpha = t
        },
        E.prototype.isPremultipliedAlpha = function () {
          return this.premultipliedAlpha
        },
        E.prototype.setAnisotropy = function (t) {
          this.anisotropy = t
        },
        E.prototype.getAnisotropy = function () {
          return this.anisotropy
        },
        E.prototype.getClippingProcess = function () {
          return this.clippingProcess
        },
        E.prototype.setClippingProcess = function (t) {
          this.clippingProcess = t
        },
        E.prototype.setClipBufPre_clipContextForMask = function (t) {
          this.clipBufPre_clipContextMask = t
        },
        E.prototype.getClipBufPre_clipContextMask = function () {
          return this.clipBufPre_clipContextMask
        },
        E.prototype.setClipBufPre_clipContextForDraw = function (t) {
          this.clipBufPre_clipContextDraw = t
        },
        E.prototype.getClipBufPre_clipContextDraw = function () {
          return this.clipBufPre_clipContextDraw
        },
        I._$ur = -2,
        I._$c2 = 1,
        I._$_b = 2,
        I.prototype._$F0 = function (t) {
          this._$kP = t._$nP(),
            this._$dr = t._$nP()
        },
        I.prototype.readV2_opacity = function (t) {
          t.getFormatVersion() >= G.LIVE2D_FORMAT_VERSION_V2_10_SDK2 && (this._$mS = t._$Tb())
        },
        I.prototype.init = function (t) {},
        I.prototype._$Nr = function (t, i) {},
        I.prototype.interpolateOpacity = function (t, i, e, r) {
          null == this._$mS ? e.setInterpolatedOpacity(1) : e.setInterpolatedOpacity(v._$br(t, i, r, this._$mS))
        },
        I.prototype._$2b = function (t, i) {},
        I.prototype._$nb = function (t, i, e, r, o, n, s) {},
        I.prototype.getType = function () {},
        I.prototype._$gs = function (t) {
          this._$dr = t
        },
        I.prototype._$a2 = function (t) {
          this._$kP = t
        },
        I.prototype.getTargetBaseDataID = function () {
          return this._$dr
        },
        I.prototype.getBaseDataID = function () {
          return this._$kP
        },
        I.prototype._$32 = function () {
          return null != this._$dr && this._$dr != yt._$2o()
        },
        w._$W2 = 0,
        w._$CS = w._$W2,
        w._$Mo = function () {
          return !0
        },
        w._$XP = function (t) {
          try {
            for (var i = getTimeMSec(); getTimeMSec() - i < t;)
            ;
          } catch (t) {
            t._$Rb()
          }
        },
        w.getUserTimeMSec = function () {
          return w._$CS == w._$W2 ? w.getSystemTimeMSec() : w._$CS
        },
        w.setUserTimeMSec = function (t) {
          w._$CS = t
        },
        w.updateUserTimeMSec = function () {
          return w._$CS = w.getSystemTimeMSec()
        },
        w.getTimeMSec = function () {
          return (new Date).getTime()
        },
        w.getSystemTimeMSec = function () {
          return (new Date).getTime()
        },
        w._$Q = function (t) {},
        w._$jT = function (t, i, e, r, o) {
          for (var n = 0; n < o; n++)
            e[r + n] = t[i + n]
        },
        x._$ds = -2,
        x.prototype._$F0 = function (t) {
          this._$wL = t._$nP(),
            this._$VP = t._$6L(),
            this._$GP = t._$nP()
        },
        x.prototype.getParamIndex = function (t) {
          return this._$2r != t && (this._$8o = x._$ds),
            this._$8o
        },
        x.prototype._$Pb = function (t, i) {
          this._$8o = t,
            this._$2r = i
        },
        x.prototype.getParamID = function () {
          return this._$wL
        },
        x.prototype._$yP = function (t) {
          this._$wL = t
        },
        x.prototype._$N2 = function () {
          return this._$VP
        },
        x.prototype._$d2 = function () {
          return this._$GP
        },
        x.prototype._$t2 = function (t, i) {
          this._$VP = t,
            this._$GP = i
        },
        x.prototype._$Lr = function () {
          return this._$O2
        },
        x.prototype._$wr = function (t) {
          this._$O2 = t
        },
        x.prototype._$SL = function () {
          return this._$ri
        },
        x.prototype._$AL = function (t) {
          this._$ri = t
        },
        O.startsWith = function (t, i, e) {
          var r = i + e.length;
          if (r >= t.length)
            return !1;
          for (var o = i; o < r; o++)
            if (O.getChar(t, o) != e.charAt(o - i))
              return !1;
          return !0
        },
        O.getChar = function (t, i) {
          return String.fromCharCode(t.getUint8(i))
        },
        O.createString = function (t, i, e) {
          for (var r = new ArrayBuffer(2 * e), o = new Uint16Array(r), n = 0; n < e; n++)
            o[n] = t.getUint8(i + n);
          return String.fromCharCode.apply(null, o)
        },
        O._$LS = function (t, i, e, r) {
          t instanceof ArrayBuffer && (t = new DataView(t));
          var o = e,
            n = !1,
            s = !1,
            _ = 0,
            a = O.getChar(t, o);
          "-" == a && (n = !0,
            o++);
          for (var h = !1; o < i; o++) {
            switch (a = O.getChar(t, o)) {
              case "0":
                _ *= 10;
                break;
              case "1":
                _ = 10 * _ + 1;
                break;
              case "2":
                _ = 10 * _ + 2;
                break;
              case "3":
                _ = 10 * _ + 3;
                break;
              case "4":
                _ = 10 * _ + 4;
                break;
              case "5":
                _ = 10 * _ + 5;
                break;
              case "6":
                _ = 10 * _ + 6;
                break;
              case "7":
                _ = 10 * _ + 7;
                break;
              case "8":
                _ = 10 * _ + 8;
                break;
              case "9":
                _ = 10 * _ + 9;
                break;
              case ".":
                s = !0,
                  o++,
                  h = !0;
                break;
              default:
                h = !0
            }
            if (h)
              break
          }
          if (s)
            for (var l = .1, $ = !1; o < i; o++) {
              switch (a = O.getChar(t, o)) {
                case "0":
                  break;
                case "1":
                  _ += 1 * l;
                  break;
                case "2":
                  _ += 2 * l;
                  break;
                case "3":
                  _ += 3 * l;
                  break;
                case "4":
                  _ += 4 * l;
                  break;
                case "5":
                  _ += 5 * l;
                  break;
                case "6":
                  _ += 6 * l;
                  break;
                case "7":
                  _ += 7 * l;
                  break;
                case "8":
                  _ += 8 * l;
                  break;
                case "9":
                  _ += 9 * l;
                  break;
                default:
                  $ = !0
              }
              if (l *= .1,
                $)
                break
            }
          return n && (_ = -_),
            r[0] = o,
            _
        },
        D.prototype._$zP = function () {
          this._$Ob = new Array
        },
        D.prototype._$F0 = function (t) {
          this._$Ob = t._$nP()
        },
        D.prototype._$Ur = function (t) {
          if (t._$WS())
            return !0;
          for (var i = t._$v2(), e = this._$Ob.length - 1; e >= 0; --e) {
            var r = this._$Ob[e].getParamIndex(i);
            if (r == x._$ds && (r = t.getParamIndex(this._$Ob[e].getParamID())),
              t._$Xb(r))
              return !0
          }
          return !1
        },
        D.prototype._$Q2 = function (t, i) {
          for (var e, r, o = this._$Ob.length, n = t._$v2(), s = 0, _ = 0; _ < o; _++) {
            var a = this._$Ob[_];
            if (e = a.getParamIndex(n),
              e == x._$ds && (e = t.getParamIndex(a.getParamID()),
                a._$Pb(e, n)),
              e < 0)
              throw new Exception("err 23242 : " + a.getParamID());
            var h = e < 0 ? 0 : t.getParamFloat(e);
            r = a._$N2();
            var l, $, u = a._$d2(),
              p = -1,
              f = 0;
            if (r < 1)
            ;
            else if (1 == r)
              l = u[0],
              l - U._$J < h && h < l + U._$J ? (p = 0,
                f = 0) : (p = 0,
                i[0] = !0);
            else if (l = u[0],
              h < l - U._$J)
              p = 0,
              i[0] = !0;
            else if (h < l + U._$J)
              p = 0;
            else {
              for (var c = !1, d = 1; d < r; ++d) {
                if ($ = u[d],
                  h < $ + U._$J) {
                  $ - U._$J < h ? p = d : (p = d - 1,
                      f = (h - l) / ($ - l),
                      s++),
                    c = !0;
                  break
                }
                l = $
              }
              c || (p = r - 1,
                f = 0,
                i[0] = !0)
            }
            a._$wr(p),
              a._$AL(f)
          }
          return s
        },
        D.prototype._$zr = function (t, i, e) {
          var r = 1 << e;
          r + 1 > U._$Qb && console.log("err 23245\n");
          for (var o = this._$Ob.length, n = 1, s = 1, _ = 0, a = 0; a < r; ++a)
            t[a] = 0;
          for (var h = 0; h < o; ++h) {
            var l = this._$Ob[h];
            if (0 == l._$SL()) {
              var $ = l._$Lr() * n;
              if ($ < 0 && at._$3T)
                throw new Exception("err 23246");
              for (var a = 0; a < r; ++a)
                t[a] += $
            } else {
              for (var $ = n * l._$Lr(), u = n * (l._$Lr() + 1), a = 0; a < r; ++a)
                t[a] += (a / s | 0) % 2 == 0 ? $ : u;
              i[_++] = l._$SL(),
                s *= 2
            }
            n *= l._$N2()
          }
          t[r] = 65535,
            i[_] = -1
        },
        D.prototype._$h2 = function (t, i, e) {
          for (var r = new Float32Array(i), o = 0; o < i; ++o)
            r[o] = e[o];
          var n = new x;
          n._$yP(t),
            n._$t2(i, r),
            this._$Ob.push(n)
        },
        D.prototype._$J2 = function (t) {
          for (var i = t, e = this._$Ob.length, r = 0; r < e; ++r) {
            var o = this._$Ob[r],
              n = o._$N2(),
              s = i % o._$N2(),
              _ = o._$d2()[s];
            console.log("%s[%d]=%7.2f / ", o.getParamID(), s, _),
              i /= n
          }
          console.log("\n")
        },
        D.prototype.getParamCount = function () {
          return this._$Ob.length
        },
        D.prototype._$zs = function () {
          return this._$Ob
        },
        R.prototype.identity = function () {
          for (var t = 0; t < 16; t++)
            this.m[t] = t % 5 == 0 ? 1 : 0
        },
        R.prototype.getArray = function () {
          return this.m
        },
        R.prototype.getCopyMatrix = function () {
          return new Float32Array(this.m)
        },
        R.prototype.setMatrix = function (t) {
          if (null != t && 16 == t.length)
            for (var i = 0; i < 16; i++)
              this.m[i] = t[i]
        },
        R.prototype.mult = function (t, i, e) {
          return null == i ? null : (this == i ? this.mult_safe(this.m, t.m, i.m, e) : this.mult_fast(this.m, t.m, i.m, e),
            i)
        },
        R.prototype.mult_safe = function (t, i, e, r) {
          if (t == e) {
            var o = new Array(16);
            this.mult_fast(t, i, o, r);
            for (var n = 15; n >= 0; --n)
              e[n] = o[n]
          } else
            this.mult_fast(t, i, e, r)
        },
        R.prototype.mult_fast = function (t, i, e, r) {
          r ? (e[0] = t[0] * i[0] + t[4] * i[1] + t[8] * i[2],
            e[4] = t[0] * i[4] + t[4] * i[5] + t[8] * i[6],
            e[8] = t[0] * i[8] + t[4] * i[9] + t[8] * i[10],
            e[12] = t[0] * i[12] + t[4] * i[13] + t[8] * i[14] + t[12],
            e[1] = t[1] * i[0] + t[5] * i[1] + t[9] * i[2],
            e[5] = t[1] * i[4] + t[5] * i[5] + t[9] * i[6],
            e[9] = t[1] * i[8] + t[5] * i[9] + t[9] * i[10],
            e[13] = t[1] * i[12] + t[5] * i[13] + t[9] * i[14] + t[13],
            e[2] = t[2] * i[0] + t[6] * i[1] + t[10] * i[2],
            e[6] = t[2] * i[4] + t[6] * i[5] + t[10] * i[6],
            e[10] = t[2] * i[8] + t[6] * i[9] + t[10] * i[10],
            e[14] = t[2] * i[12] + t[6] * i[13] + t[10] * i[14] + t[14],
            e[3] = e[7] = e[11] = 0,
            e[15] = 1) : (e[0] = t[0] * i[0] + t[4] * i[1] + t[8] * i[2] + t[12] * i[3],
            e[4] = t[0] * i[4] + t[4] * i[5] + t[8] * i[6] + t[12] * i[7],
            e[8] = t[0] * i[8] + t[4] * i[9] + t[8] * i[10] + t[12] * i[11],
            e[12] = t[0] * i[12] + t[4] * i[13] + t[8] * i[14] + t[12] * i[15],
            e[1] = t[1] * i[0] + t[5] * i[1] + t[9] * i[2] + t[13] * i[3],
            e[5] = t[1] * i[4] + t[5] * i[5] + t[9] * i[6] + t[13] * i[7],
            e[9] = t[1] * i[8] + t[5] * i[9] + t[9] * i[10] + t[13] * i[11],
            e[13] = t[1] * i[12] + t[5] * i[13] + t[9] * i[14] + t[13] * i[15],
            e[2] = t[2] * i[0] + t[6] * i[1] + t[10] * i[2] + t[14] * i[3],
            e[6] = t[2] * i[4] + t[6] * i[5] + t[10] * i[6] + t[14] * i[7],
            e[10] = t[2] * i[8] + t[6] * i[9] + t[10] * i[10] + t[14] * i[11],
            e[14] = t[2] * i[12] + t[6] * i[13] + t[10] * i[14] + t[14] * i[15],
            e[3] = t[3] * i[0] + t[7] * i[1] + t[11] * i[2] + t[15] * i[3],
            e[7] = t[3] * i[4] + t[7] * i[5] + t[11] * i[6] + t[15] * i[7],
            e[11] = t[3] * i[8] + t[7] * i[9] + t[11] * i[10] + t[15] * i[11],
            e[15] = t[3] * i[12] + t[7] * i[13] + t[11] * i[14] + t[15] * i[15])
        },
        R.prototype.translate = function (t, i, e) {
          this.m[12] = this.m[0] * t + this.m[4] * i + this.m[8] * e + this.m[12],
            this.m[13] = this.m[1] * t + this.m[5] * i + this.m[9] * e + this.m[13],
            this.m[14] = this.m[2] * t + this.m[6] * i + this.m[10] * e + this.m[14],
            this.m[15] = this.m[3] * t + this.m[7] * i + this.m[11] * e + this.m[15]
        },
        R.prototype.scale = function (t, i, e) {
          this.m[0] *= t,
            this.m[4] *= i,
            this.m[8] *= e,
            this.m[1] *= t,
            this.m[5] *= i,
            this.m[9] *= e,
            this.m[2] *= t,
            this.m[6] *= i,
            this.m[10] *= e,
            this.m[3] *= t,
            this.m[7] *= i,
            this.m[11] *= e
        },
        R.prototype.rotateX = function (t) {
          var i = Lt.fcos(t),
            e = Lt._$9(t),
            r = this.m[4];
          this.m[4] = r * i + this.m[8] * e,
            this.m[8] = r * -e + this.m[8] * i,
            r = this.m[5],
            this.m[5] = r * i + this.m[9] * e,
            this.m[9] = r * -e + this.m[9] * i,
            r = this.m[6],
            this.m[6] = r * i + this.m[10] * e,
            this.m[10] = r * -e + this.m[10] * i,
            r = this.m[7],
            this.m[7] = r * i + this.m[11] * e,
            this.m[11] = r * -e + this.m[11] * i
        },
        R.prototype.rotateY = function (t) {
          var i = Lt.fcos(t),
            e = Lt._$9(t),
            r = this.m[0];
          this.m[0] = r * i + this.m[8] * -e,
            this.m[8] = r * e + this.m[8] * i,
            r = this.m[1],
            this.m[1] = r * i + this.m[9] * -e,
            this.m[9] = r * e + this.m[9] * i,
            r = m[2],
            this.m[2] = r * i + this.m[10] * -e,
            this.m[10] = r * e + this.m[10] * i,
            r = m[3],
            this.m[3] = r * i + this.m[11] * -e,
            this.m[11] = r * e + this.m[11] * i
        },
        R.prototype.rotateZ = function (t) {
          var i = Lt.fcos(t),
            e = Lt._$9(t),
            r = this.m[0];
          this.m[0] = r * i + this.m[4] * e,
            this.m[4] = r * -e + this.m[4] * i,
            r = this.m[1],
            this.m[1] = r * i + this.m[5] * e,
            this.m[5] = r * -e + this.m[5] * i,
            r = this.m[2],
            this.m[2] = r * i + this.m[6] * e,
            this.m[6] = r * -e + this.m[6] * i,
            r = this.m[3],
            this.m[3] = r * i + this.m[7] * e,
            this.m[7] = r * -e + this.m[7] * i
        },
        b.prototype = new et,
        b._$tP = new Object,
        b._$27 = function () {
          b._$tP.clear()
        },
        b.getID = function (t) {
          var i = b._$tP[t];
          return null == i && (i = new b(t),
              b._$tP[t] = i),
            i
        },
        b.prototype._$3s = function () {
          return new b
        },
        F._$kS = -1,
        F._$pS = 0,
        F._$hb = 1,
        F.STATE_IDENTITY = 0,
        F._$gb = 1,
        F._$fo = 2,
        F._$go = 4,
        F.prototype.transform = function (t, i, e) {
          var r, o, n, s, _, a, h = 0,
            l = 0;
          switch (this._$hi) {
            default:
              return;
            case F._$go | F._$fo | F._$gb:
              for (r = this._$7,
                o = this._$H,
                n = this._$k,
                s = this._$f,
                _ = this._$g,
                a = this._$w; --e >= 0;) {
                var $ = t[h++],
                  u = t[h++];
                i[l++] = r * $ + o * u + n,
                  i[l++] = s * $ + _ * u + a
              }
              return;
            case F._$go | F._$fo:
              for (r = this._$7,
                o = this._$H,
                s = this._$f,
                _ = this._$g; --e >= 0;) {
                var $ = t[h++],
                  u = t[h++];
                i[l++] = r * $ + o * u,
                  i[l++] = s * $ + _ * u
              }
              return;
            case F._$go | F._$gb:
              for (o = this._$H,
                n = this._$k,
                s = this._$f,
                a = this._$w; --e >= 0;) {
                var $ = t[h++];
                i[l++] = o * t[h++] + n,
                  i[l++] = s * $ + a
              }
              return;
            case F._$go:
              for (o = this._$H,
                s = this._$f; --e >= 0;) {
                var $ = t[h++];
                i[l++] = o * t[h++],
                  i[l++] = s * $
              }
              return;
            case F._$fo | F._$gb:
              for (r = this._$7,
                n = this._$k,
                _ = this._$g,
                a = this._$w; --e >= 0;)
                i[l++] = r * t[h++] + n,
                i[l++] = _ * t[h++] + a;
              return;
            case F._$fo:
              for (r = this._$7,
                _ = this._$g; --e >= 0;)
                i[l++] = r * t[h++],
                i[l++] = _ * t[h++];
              return;
            case F._$gb:
              for (n = this._$k,
                a = this._$w; --e >= 0;)
                i[l++] = t[h++] + n,
                i[l++] = t[h++] + a;
              return;
            case F.STATE_IDENTITY:
              return void(t == i && h == l || w._$jT(t, h, i, l, 2 * e))
          }
        },
        F.prototype.update = function () {
          0 == this._$H && 0 == this._$f ? 1 == this._$7 && 1 == this._$g ? 0 == this._$k && 0 == this._$w ? (this._$hi = F.STATE_IDENTITY,
            this._$Z = F._$pS) : (this._$hi = F._$gb,
            this._$Z = F._$hb) : 0 == this._$k && 0 == this._$w ? (this._$hi = F._$fo,
            this._$Z = F._$kS) : (this._$hi = F._$fo | F._$gb,
            this._$Z = F._$kS) : 0 == this._$7 && 0 == this._$g ? 0 == this._$k && 0 == this._$w ? (this._$hi = F._$go,
            this._$Z = F._$kS) : (this._$hi = F._$go | F._$gb,
            this._$Z = F._$kS) : 0 == this._$k && 0 == this._$w ? (this._$hi = F._$go | F._$fo,
            this._$Z = F._$kS) : (this._$hi = F._$go | F._$fo | F._$gb,
            this._$Z = F._$kS)
        },
        F.prototype._$RT = function (t) {
          this._$IT(t);
          var i = t[0],
            e = t[2],
            r = t[1],
            o = t[3],
            n = Math.sqrt(i * i + r * r),
            s = i * o - e * r;
          0 == n ? at._$so && console.log("affine._$RT() / rt==0") : (t[0] = n,
            t[1] = s / n,
            t[2] = (r * o + i * e) / s,
            t[3] = Math.atan2(r, i))
        },
        F.prototype._$ho = function (t, i, e, r) {
          var o = new Float32Array(6),
            n = new Float32Array(6);
          t._$RT(o),
            i._$RT(n);
          var s = new Float32Array(6);
          s[0] = o[0] + (n[0] - o[0]) * e,
            s[1] = o[1] + (n[1] - o[1]) * e,
            s[2] = o[2] + (n[2] - o[2]) * e,
            s[3] = o[3] + (n[3] - o[3]) * e,
            s[4] = o[4] + (n[4] - o[4]) * e,
            s[5] = o[5] + (n[5] - o[5]) * e,
            r._$CT(s)
        },
        F.prototype._$CT = function (t) {
          var i = Math.cos(t[3]),
            e = Math.sin(t[3]);
          this._$7 = t[0] * i,
            this._$f = t[0] * e,
            this._$H = t[1] * (t[2] * i - e),
            this._$g = t[1] * (t[2] * e + i),
            this._$k = t[4],
            this._$w = t[5],
            this.update()
        },
        F.prototype._$IT = function (t) {
          t[0] = this._$7,
            t[1] = this._$f,
            t[2] = this._$H,
            t[3] = this._$g,
            t[4] = this._$k,
            t[5] = this._$w
        },
        C.prototype = new s,
        C._$cs = "VISIBLE:",
        C._$ar = "LAYOUT:",
        C._$Co = 0,
        C._$D2 = [],
        C._$1T = 1,
        C.loadMotion = function (t) {
          var i = new C,
            e = [0],
            r = t.length;
          i._$yT = 0;
          for (var o = 0; o < r; ++o) {
            var n = 255 & t[o];
            if ("\n" != n && "\r" != n)
              if ("#" != n)
                if ("$" != n) {
                  if ("a" <= n && n <= "z" || "A" <= n && n <= "Z" || "_" == n) {
                    for (var s = o, _ = -1; o < r && ("\r" != (n = 255 & t[o]) && "\n" != n); ++o)
                      if ("=" == n) {
                        _ = o;
                        break
                      }
                    if (_ >= 0) {
                      var a = new B;
                      O.startsWith(t, s, C._$cs) ? (a._$RP = B._$hs,
                          a._$4P = new String(t, s, _ - s)) : O.startsWith(t, s, C._$ar) ? (a._$4P = new String(t, s + 7, _ - s - 7),
                          O.startsWith(t, s + 7, "ANCHOR_X") ? a._$RP = B._$xs : O.startsWith(t, s + 7, "ANCHOR_Y") ? a._$RP = B._$us : O.startsWith(t, s + 7, "SCALE_X") ? a._$RP = B._$qs : O.startsWith(t, s + 7, "SCALE_Y") ? a._$RP = B._$Ys : O.startsWith(t, s + 7, "X") ? a._$RP = B._$ws : O.startsWith(t, s + 7, "Y") && (a._$RP = B._$Ns)) : (a._$RP = B._$Fr,
                          a._$4P = new String(t, s, _ - s)),
                        i.motions.push(a);
                      var h = 0;
                      for (C._$D2.clear(),
                        o = _ + 1; o < r && ("\r" != (n = 255 & t[o]) && "\n" != n); ++o)
                        if ("," != n && " " != n && "\t" != n) {
                          var l = O._$LS(t, r, o, e);
                          if (e[0] > 0) {
                            C._$D2.push(l),
                              h++;
                            var $ = e[0];
                            if ($ < o) {
                              console.log("_$n0 _$hi . @Live2DMotion loadMotion()\n");
                              break
                            }
                            o = $
                          }
                        }
                      a._$I0 = C._$D2._$BL(),
                        h > i._$yT && (i._$yT = h)
                    }
                  }
                } else {
                  for (var s = o, _ = -1; o < r && ("\r" != (n = 255 & t[o]) && "\n" != n); ++o)
                    if ("=" == n) {
                      _ = o;
                      break
                    }
                  var u = !1;
                  if (_ >= 0)
                    for (_ == s + 4 && "f" == t[s + 1] && "p" == t[s + 2] && "s" == t[s + 3] && (u = !0),
                      o = _ + 1; o < r && ("\r" != (n = 255 & t[o]) && "\n" != n); ++o)
                      if ("," != n && " " != n && "\t" != n) {
                        var l = O._$LS(t, r, o, e);
                        e[0] > 0 && u && 5 < l && l < 121 && (i._$D0 = l),
                          o = e[0]
                      }
                  for (; o < r && ("\n" != t[o] && "\r" != t[o]); ++o)
                  ;
                }
            else
              for (; o < r && ("\n" != t[o] && "\r" != t[o]); ++o)
            ;
          }
          return i._$AS = 1e3 * i._$yT / i._$D0 | 0,
            i
        },
        C.prototype.getDurationMSec = function () {
          return this._$AS
        },
        C.prototype.dump = function () {
          for (var t = 0; t < this.motions.length; t++) {
            var i = this.motions[t];
            console.log("_$wL[%s] [%d]. ", i._$4P, i._$I0.length);
            for (var e = 0; e < i._$I0.length && e < 10; e++)
              console.log("%5.2f ,", i._$I0[e]);
            console.log("\n")
          }
        },
        C.prototype.updateParamExe = function (t, i, e, r) {
          for (var o = i - r._$z2, n = o * this._$D0 / 1e3, s = 0 | n, _ = n - s, a = 0; a < this.motions.length; a++) {
            var h = this.motions[a],
              l = h._$I0.length,
              $ = h._$4P;
            if (h._$RP == B._$hs) {
              var u = h._$I0[s >= l ? l - 1 : s];
              t.setParamFloat($, u)
            } else if (B._$ws <= h._$RP && h._$RP <= B._$Ys)
            ;
            else {
              var p = t.getParamFloat($),
                f = h._$I0[s >= l ? l - 1 : s],
                c = h._$I0[s + 1 >= l ? l - 1 : s + 1],
                d = f + (c - f) * _,
                g = p + (d - p) * e;
              t.setParamFloat($, g)
            }
          }
          s >= this._$yT && (this._$E ? (r._$z2 = i,
            this.loopFadeIn && (r._$bs = i)) : r._$9L = !0)
        },
        C.prototype._$r0 = function () {
          return this._$E
        },
        C.prototype._$aL = function (t) {
          this._$E = t
        },
        C.prototype.isLoopFadeIn = function () {
          return this.loopFadeIn
        },
        C.prototype.setLoopFadeIn = function (t) {
          this.loopFadeIn = t
        },
        N.prototype.clear = function () {
          this.size = 0
        },
        N.prototype.add = function (t) {
          if (this._$P.length <= this.size) {
            var i = new Float32Array(2 * this.size);
            w._$jT(this._$P, 0, i, 0, this.size),
              this._$P = i
          }
          this._$P[this.size++] = t
        },
        N.prototype._$BL = function () {
          var t = new Float32Array(this.size);
          return w._$jT(this._$P, 0, t, 0, this.size),
            t
        },
        B._$Fr = 0,
        B._$hs = 1,
        B._$ws = 100,
        B._$Ns = 101,
        B._$xs = 102,
        B._$us = 103,
        B._$qs = 104,
        B._$Ys = 105,
        U._$Ms = 1,
        U._$Qs = 2,
        U._$i2 = 0,
        U._$No = 2,
        U._$do = U._$Ms,
        U._$Ls = !0,
        U._$1r = 5,
        U._$Qb = 65,
        U._$J = 1e-4,
        U._$FT = .001,
        U._$Ss = 3,
        G._$o7 = 6,
        G._$S7 = 7,
        G._$s7 = 8,
        G._$77 = 9,
        G.LIVE2D_FORMAT_VERSION_V2_10_SDK2 = 10,
        G.LIVE2D_FORMAT_VERSION_V2_11_SDK2_1 = 11,
        G._$T7 = G.LIVE2D_FORMAT_VERSION_V2_11_SDK2_1,
        G._$Is = -2004318072,
        G._$h0 = 0,
        G._$4L = 23,
        G._$7P = 33,
        G._$uT = function (t) {
          console.log("_$bo :: _$6 _$mo _$E0 : %d\n", t)
        },
        G._$9o = function (t) {
          if (t < 40)
            return G._$uT(t),
              null;
          if (t < 50)
            return G._$uT(t),
              null;
          if (t < 60)
            return G._$uT(t),
              null;
          if (t < 100)
            switch (t) {
              case 65:
                return new Z;
              case 66:
                return new D;
              case 67:
                return new x;
              case 68:
                return new z;
              case 69:
                return new P;
              case 70:
                return new $t;
              default:
                return G._$uT(t),
                  null
            }
          else if (t < 150)
            switch (t) {
              case 131:
                return new st;
              case 133:
                return new tt;
              case 136:
                return new p;
              case 137:
                return new ot;
              case 142:
                return new j
            }
          return G._$uT(t),
            null
        },
        Y._$HP = 0,
        Y._$_0 = !0;
      Y._$V2 = -1,
        Y._$W0 = -1,
        Y._$jr = !1,
        Y._$ZS = !0,
        Y._$tr = -1e6,
        Y._$lr = 1e6,
        Y._$is = 32,
        Y._$e = !1,
        Y.prototype.getDrawDataIndex = function (t) {
          for (var i = this._$aS.length - 1; i >= 0; --i)
            if (null != this._$aS[i] && this._$aS[i].getDrawDataID() == t)
              return i;
          return -1
        },
        Y.prototype.getDrawData = function (t) {
          if (t instanceof b) {
            if (null == this._$Bo) {
              this._$Bo = new Object;
              for (var i = this._$aS.length, e = 0; e < i; e++) {
                var r = this._$aS[e],
                  o = r.getDrawDataID();
                null != o && (this._$Bo[o] = r)
              }
            }
            return this._$Bo[id]
          }
          return t < this._$aS.length ? this._$aS[t] : null
        },
        Y.prototype.release = function () {
          this._$3S.clear(),
            this._$aS.clear(),
            this._$F2.clear(),
            null != this._$Bo && this._$Bo.clear(),
            this._$db.clear(),
            this._$8b.clear(),
            this._$Hr.clear()
        },
        Y.prototype.init = function () {
          this._$co++,
            this._$F2.length > 0 && this.release();
          for (var t = this._$Ri.getModelImpl(), i = t._$Xr(), r = i.length, o = new Array, n = new Array, s = 0; s < r; ++s) {
            var _ = i[s];
            this._$F2.push(_),
              this._$Hr.push(_.init(this));
            for (var a = _.getBaseData(), h = a.length, l = 0; l < h; ++l)
              o.push(a[l]);
            for (var l = 0; l < h; ++l) {
              var $ = a[l].init(this);
              $._$l2(s),
                n.push($)
            }
            for (var u = _.getDrawData(), p = u.length, l = 0; l < p; ++l) {
              var f = u[l],
                c = f.init(this);
              c._$IP = s,
                this._$aS.push(f),
                this._$8b.push(c)
            }
          }
          for (var d = o.length, g = yt._$2o();;) {
            for (var y = !1, s = 0; s < d; ++s) {
              var m = o[s];
              if (null != m) {
                var T = m.getTargetBaseDataID();
                (null == T || T == g || this.getBaseDataIndex(T) >= 0) && (this._$3S.push(m),
                  this._$db.push(n[s]),
                  o[s] = null,
                  y = !0)
              }
            }
            if (!y)
              break
          }
          var P = t._$E2();
          if (null != P) {
            var S = P._$1s();
            if (null != S)
              for (var v = S.length, s = 0; s < v; ++s) {
                var L = S[s];
                null != L && this._$02(L.getParamID(), L.getDefaultValue(), L.getMinValue(), L.getMaxValue())
              }
          }
          this.clipManager = new e(this.dp_webgl),
            this.clipManager.init(this, this._$aS, this._$8b),
            this._$QT = !0
        },
        Y.prototype.update = function () {
          Y._$e && _.start("_$zL");
          for (var t = this._$_2.length, i = 0; i < t; i++)
            this._$_2[i] != this._$vr[i] && (this._$Js[i] = Y._$ZS,
              this._$vr[i] = this._$_2[i]);
          var e = this._$3S.length,
            r = this._$aS.length,
            o = W._$or(),
            n = W._$Pr(),
            s = n - o + 1;
          (null == this._$Ws || this._$Ws.length < s) && (this._$Ws = new Int16Array(s),
            this._$Vs = new Int16Array(s));
          for (var i = 0; i < s; i++)
            this._$Ws[i] = Y._$V2,
            this._$Vs[i] = Y._$V2;
          (null == this._$Er || this._$Er.length < r) && (this._$Er = new Int16Array(r));
          for (var i = 0; i < r; i++)
            this._$Er[i] = Y._$W0;
          Y._$e && _.dump("_$zL"),
            Y._$e && _.start("_$UL");
          for (var a = null, h = 0; h < e; ++h) {
            var l = this._$3S[h],
              $ = this._$db[h];
            try {
              l._$Nr(this, $),
                l._$2b(this, $)
            } catch (t) {
              null == a && (a = t)
            }
          }
          null != a && Y._$_0 && _._$Rb(a),
            Y._$e && _.dump("_$UL"),
            Y._$e && _.start("_$DL");
          for (var u = null, p = 0; p < r; ++p) {
            var f = this._$aS[p],
              c = this._$8b[p];
            try {
              if (f._$Nr(this, c),
                c._$u2())
                continue;
              f._$2b(this, c);
              var d, g = Math.floor(f._$zS(this, c) - o);
              try {
                d = this._$Vs[g]
              } catch (t) {
                console.log("_$li :: %s / %s \t\t\t\t@@_$fS\n", t.toString(), f.getDrawDataID().toString()),
                  g = Math.floor(f._$zS(this, c) - o);
                continue
              }
              d == Y._$V2 ? this._$Ws[g] = p : this._$Er[d] = p,
                this._$Vs[g] = p
            } catch (t) {
              null == u && (u = t,
                at._$sT(at._$H7))
            }
          }
          null != u && Y._$_0 && _._$Rb(u),
            Y._$e && _.dump("_$DL"),
            Y._$e && _.start("_$eL");
          for (var i = this._$Js.length - 1; i >= 0; i--)
            this._$Js[i] = Y._$jr;
          return this._$QT = !1,
            Y._$e && _.dump("_$eL"),
            !1
        },
        Y.prototype.preDraw = function (t) {
          null != this.clipManager && (t._$ZT(),
            this.clipManager.setupClip(this, t))
        },
        Y.prototype.draw = function (t) {
          if (null == this._$Ws)
            return void _._$li("call _$Ri.update() before _$Ri.draw() ");
          var i = this._$Ws.length;
          t._$ZT();
          for (var e = 0; e < i; ++e) {
            var r = this._$Ws[e];
            if (r != Y._$V2)
              for (;;) {
                var o = this._$aS[r],
                  n = this._$8b[r];
                if (n._$yo()) {
                  var s = n._$IP,
                    a = this._$Hr[s];
                  n._$VS = a.getPartsOpacity(),
                    o.draw(t, this, n)
                }
                var h = this._$Er[r];
                if (h <= r || h == Y._$W0)
                  break;
                r = h
              }
          }
        },
        Y.prototype.getParamIndex = function (t) {
          for (var i = this._$pb.length - 1; i >= 0; --i)
            if (this._$pb[i] == t)
              return i;
          return this._$02(t, 0, Y._$tr, Y._$lr)
        },
        Y.prototype._$BS = function (t) {
          return this.getBaseDataIndex(t)
        },
        Y.prototype.getBaseDataIndex = function (t) {
          for (var i = this._$3S.length - 1; i >= 0; --i)
            if (null != this._$3S[i] && this._$3S[i].getBaseDataID() == t)
              return i;
          return -1
        },
        Y.prototype._$UT = function (t, i) {
          var e = new Float32Array(i);
          return w._$jT(t, 0, e, 0, t.length),
            e
        },
        Y.prototype._$02 = function (t, i, e, r) {
          if (this._$qo >= this._$pb.length) {
            var o = this._$pb.length,
              n = new Array(2 * o);
            w._$jT(this._$pb, 0, n, 0, o),
              this._$pb = n,
              this._$_2 = this._$UT(this._$_2, 2 * o),
              this._$vr = this._$UT(this._$vr, 2 * o),
              this._$Rr = this._$UT(this._$Rr, 2 * o),
              this._$Or = this._$UT(this._$Or, 2 * o);
            var s = new Array;
            w._$jT(this._$Js, 0, s, 0, o),
              this._$Js = s
          }
          return this._$pb[this._$qo] = t,
            this._$_2[this._$qo] = i,
            this._$vr[this._$qo] = i,
            this._$Rr[this._$qo] = e,
            this._$Or[this._$qo] = r,
            this._$Js[this._$qo] = Y._$ZS,
            this._$qo++
        },
        Y.prototype._$Zo = function (t, i) {
          this._$3S[t] = i
        },
        Y.prototype.setParamFloat = function (t, i) {
          i < this._$Rr[t] && (i = this._$Rr[t]),
            i > this._$Or[t] && (i = this._$Or[t]),
            this._$_2[t] = i
        },
        Y.prototype.loadParam = function () {
          var t = this._$_2.length;
          t > this._$fs.length && (t = this._$fs.length),
            w._$jT(this._$fs, 0, this._$_2, 0, t)
        },
        Y.prototype.saveParam = function () {
          var t = this._$_2.length;
          t > this._$fs.length && (this._$fs = new Float32Array(t)),
            w._$jT(this._$_2, 0, this._$fs, 0, t)
        },
        Y.prototype._$v2 = function () {
          return this._$co
        },
        Y.prototype._$WS = function () {
          return this._$QT
        },
        Y.prototype._$Xb = function (t) {
          return this._$Js[t] == Y._$ZS
        },
        Y.prototype._$vs = function () {
          return this._$Es
        },
        Y.prototype._$Tr = function () {
          return this._$ZP
        },
        Y.prototype.getBaseData = function (t) {
          return this._$3S[t]
        },
        Y.prototype.getParamFloat = function (t) {
          return this._$_2[t]
        },
        Y.prototype.getParamMax = function (t) {
          return this._$Or[t]
        },
        Y.prototype.getParamMin = function (t) {
          return this._$Rr[t]
        },
        Y.prototype.setPartsOpacity = function (t, i) {
          this._$Hr[t].setPartsOpacity(i)
        },
        Y.prototype.getPartsOpacity = function (t) {
          return this._$Hr[t].getPartsOpacity()
        },
        Y.prototype.getPartsDataIndex = function (t) {
          for (var i = this._$F2.length - 1; i >= 0; --i)
            if (null != this._$F2[i] && this._$F2[i]._$p2() == t)
              return i;
          return -1
        },
        Y.prototype._$q2 = function (t) {
          return this._$db[t]
        },
        Y.prototype._$C2 = function (t) {
          return this._$8b[t]
        },
        Y.prototype._$Bb = function (t) {
          return this._$Hr[t]
        },
        Y.prototype._$5s = function (t, i) {
          for (var e = this._$Ws.length, r = t, o = 0; o < e; ++o) {
            var n = this._$Ws[o];
            if (n != Y._$V2)
              for (;;) {
                var s = this._$8b[n];
                s._$yo() && (s._$GT()._$B2(this, s, r),
                  r += i);
                var _ = this._$Er[n];
                if (_ <= n || _ == Y._$W0)
                  break;
                n = _
              }
          }
        },
        Y.prototype.setDrawParam = function (t) {
          this.dp_webgl = t
        },
        Y.prototype.getDrawParam = function () {
          return this.dp_webgl
        },
        k._$0T = function (t) {
          return k._$0T(new _$5(t))
        },
        k._$0T = function (t) {
          if (!t.exists())
            throw new _$ls(t._$3b());
          for (var i, e = t.length(), r = new Int8Array(e), o = new _$Xs(new _$kb(t), 8192), n = 0;
            (i = o.read(r, n, e - n)) > 0;)
            n += i;
          return r
        },
        k._$C = function (t) {
          var i = null,
            e = null;
          try {
            i = t instanceof Array ? t : new _$Xs(t, 8192),
              e = new _$js;
            for (var r, o = new Int8Array(1e3);
              (r = i.read(o)) > 0;)
              e.write(o, 0, r);
            return e._$TS()
          } finally {
            null != t && t.close(),
              null != e && (e.flush(),
                e.close())
          }
        },
        V.prototype._$T2 = function () {
          return w.getUserTimeMSec() + Math._$10() * (2 * this._$Br - 1)
        },
        V.prototype._$uo = function (t) {
          this._$Br = t
        },
        V.prototype._$QS = function (t, i, e) {
          this._$Dr = t,
            this._$Cb = i,
            this._$mr = e
        },
        V.prototype._$7T = function (t) {
          var i, e = w.getUserTimeMSec(),
            r = 0;
          switch (this._$_L) {
            case STATE_CLOSING:
              r = (e - this._$bb) / this._$Dr,
                r >= 1 && (r = 1,
                  this._$_L = wt.STATE_CLOSED,
                  this._$bb = e),
                i = 1 - r;
              break;
            case STATE_CLOSED:
              r = (e - this._$bb) / this._$Cb,
                r >= 1 && (this._$_L = wt.STATE_OPENING,
                  this._$bb = e),
                i = 0;
              break;
            case STATE_OPENING:
              r = (e - this._$bb) / this._$mr,
                r >= 1 && (r = 1,
                  this._$_L = wt.STATE_INTERVAL,
                  this._$12 = this._$T2()),
                i = r;
              break;
            case STATE_INTERVAL:
              this._$12 < e && (this._$_L = wt.STATE_CLOSING,
                  this._$bb = e),
                i = 1;
              break;
            case STATE_FIRST:
            default:
              this._$_L = wt.STATE_INTERVAL,
                this._$12 = this._$T2(),
                i = 1
          }
          this._$jo || (i = -i),
            t.setParamFloat(this._$iL, i),
            t.setParamFloat(this._$0L, i)
        };
      var wt = function () {};
      wt.STATE_FIRST = "STATE_FIRST",
        wt.STATE_INTERVAL = "STATE_INTERVAL",
        wt.STATE_CLOSING = "STATE_CLOSING",
        wt.STATE_CLOSED = "STATE_CLOSED",
        wt.STATE_OPENING = "STATE_OPENING",
        X.prototype = new E,
        X._$As = 32,
        X._$Gr = !1,
        X._$NT = null,
        X._$vS = null,
        X._$no = null,
        X._$9r = function (t) {
          return new Float32Array(t)
        },
        X._$vb = function (t) {
          return new Int16Array(t)
        },
        X._$cr = function (t, i) {
          return null == t || t._$yL() < i.length ? (t = X._$9r(2 * i.length),
              t.put(i),
              t._$oT(0)) : (t.clear(),
              t.put(i),
              t._$oT(0)),
            t
        },
        X._$mb = function (t, i) {
          return null == t || t._$yL() < i.length ? (t = X._$vb(2 * i.length),
              t.put(i),
              t._$oT(0)) : (t.clear(),
              t.put(i),
              t._$oT(0)),
            t
        },
        X._$Hs = function () {
          return X._$Gr
        },
        X._$as = function (t) {
          X._$Gr = t
        },
        X.prototype.setGL = function (t) {
          this.gl = t
        },
        X.prototype.setTransform = function (t) {
          this.transform = t
        },
        X.prototype._$ZT = function () {},
        X.prototype._$Uo = function (t, i, e, r, o, n, s, _) {
          if (!(n < .01)) {
            var a = this._$U2[t],
              h = n > .9 ? at.EXPAND_W : 0;
            this.gl.drawElements(a, e, r, o, n, h, this.transform, _)
          }
        },
        X.prototype._$Rs = function () {
          throw new Error("_$Rs")
        },
        X.prototype._$Ds = function (t) {
          throw new Error("_$Ds")
        },
        X.prototype._$K2 = function () {
          for (var t = 0; t < this._$sb.length; t++) {
            0 != this._$sb[t] && (this.gl._$Sr(1, this._$sb, t),
              this._$sb[t] = 0)
          }
        },
        X.prototype.setTexture = function (t, i) {
          this._$sb.length < t + 1 && this._$nS(t),
            this._$sb[t] = i
        },
        X.prototype.setTexture = function (t, i) {
          this._$sb.length < t + 1 && this._$nS(t),
            this._$U2[t] = i
        },
        X.prototype._$nS = function (t) {
          var i = Math.max(2 * this._$sb.length, t + 1 + 10),
            e = new Int32Array(i);
          w._$jT(this._$sb, 0, e, 0, this._$sb.length),
            this._$sb = e;
          var r = new Array;
          w._$jT(this._$U2, 0, r, 0, this._$U2.length),
            this._$U2 = r
        },
        z.prototype = new I,
        z._$Xo = new Float32Array(2),
        z._$io = new Float32Array(2),
        z._$0o = new Float32Array(2),
        z._$Lo = new Float32Array(2),
        z._$To = new Float32Array(2),
        z._$Po = new Float32Array(2),
        z._$gT = new Array,
        z.prototype._$zP = function () {
          this._$GS = new D,
            this._$GS._$zP(),
            this._$Y0 = new Array
        },
        z.prototype.getType = function () {
          return I._$c2
        },
        z.prototype._$F0 = function (t) {
          I.prototype._$F0.call(this, t),
            this._$GS = t._$nP(),
            this._$Y0 = t._$nP(),
            I.prototype.readV2_opacity.call(this, t)
        },
        z.prototype.init = function (t) {
          var i = new H(this);
          return i._$Yr = new P,
            this._$32() && (i._$Wr = new P),
            i
        },
        z.prototype._$Nr = function (t, i) {
          this != i._$GT() && console.log("### assert!! ### ");
          var e = i;
          if (this._$GS._$Ur(t)) {
            var r = z._$gT;
            r[0] = !1;
            var o = this._$GS._$Q2(t, r);
            i._$Ib(r[0]),
              this.interpolateOpacity(t, this._$GS, i, r);
            var n = t._$vs(),
              s = t._$Tr();
            if (this._$GS._$zr(n, s, o),
              o <= 0) {
              var _ = this._$Y0[n[0]];
              e._$Yr.init(_)
            } else if (1 == o) {
              var _ = this._$Y0[n[0]],
                a = this._$Y0[n[1]],
                h = s[0];
              e._$Yr._$fL = _._$fL + (a._$fL - _._$fL) * h,
                e._$Yr._$gL = _._$gL + (a._$gL - _._$gL) * h,
                e._$Yr._$B0 = _._$B0 + (a._$B0 - _._$B0) * h,
                e._$Yr._$z0 = _._$z0 + (a._$z0 - _._$z0) * h,
                e._$Yr._$qT = _._$qT + (a._$qT - _._$qT) * h
            } else if (2 == o) {
              var _ = this._$Y0[n[0]],
                a = this._$Y0[n[1]],
                l = this._$Y0[n[2]],
                $ = this._$Y0[n[3]],
                h = s[0],
                u = s[1],
                p = _._$fL + (a._$fL - _._$fL) * h,
                f = l._$fL + ($._$fL - l._$fL) * h;
              e._$Yr._$fL = p + (f - p) * u,
                p = _._$gL + (a._$gL - _._$gL) * h,
                f = l._$gL + ($._$gL - l._$gL) * h,
                e._$Yr._$gL = p + (f - p) * u,
                p = _._$B0 + (a._$B0 - _._$B0) * h,
                f = l._$B0 + ($._$B0 - l._$B0) * h,
                e._$Yr._$B0 = p + (f - p) * u,
                p = _._$z0 + (a._$z0 - _._$z0) * h,
                f = l._$z0 + ($._$z0 - l._$z0) * h,
                e._$Yr._$z0 = p + (f - p) * u,
                p = _._$qT + (a._$qT - _._$qT) * h,
                f = l._$qT + ($._$qT - l._$qT) * h,
                e._$Yr._$qT = p + (f - p) * u
            } else if (3 == o) {
              var c = this._$Y0[n[0]],
                d = this._$Y0[n[1]],
                g = this._$Y0[n[2]],
                y = this._$Y0[n[3]],
                m = this._$Y0[n[4]],
                T = this._$Y0[n[5]],
                P = this._$Y0[n[6]],
                S = this._$Y0[n[7]],
                h = s[0],
                u = s[1],
                v = s[2],
                p = c._$fL + (d._$fL - c._$fL) * h,
                f = g._$fL + (y._$fL - g._$fL) * h,
                L = m._$fL + (T._$fL - m._$fL) * h,
                M = P._$fL + (S._$fL - P._$fL) * h;
              e._$Yr._$fL = (1 - v) * (p + (f - p) * u) + v * (L + (M - L) * u),
                p = c._$gL + (d._$gL - c._$gL) * h,
                f = g._$gL + (y._$gL - g._$gL) * h,
                L = m._$gL + (T._$gL - m._$gL) * h,
                M = P._$gL + (S._$gL - P._$gL) * h,
                e._$Yr._$gL = (1 - v) * (p + (f - p) * u) + v * (L + (M - L) * u),
                p = c._$B0 + (d._$B0 - c._$B0) * h,
                f = g._$B0 + (y._$B0 - g._$B0) * h,
                L = m._$B0 + (T._$B0 - m._$B0) * h,
                M = P._$B0 + (S._$B0 - P._$B0) * h,
                e._$Yr._$B0 = (1 - v) * (p + (f - p) * u) + v * (L + (M - L) * u),
                p = c._$z0 + (d._$z0 - c._$z0) * h,
                f = g._$z0 + (y._$z0 - g._$z0) * h,
                L = m._$z0 + (T._$z0 - m._$z0) * h,
                M = P._$z0 + (S._$z0 - P._$z0) * h,
                e._$Yr._$z0 = (1 - v) * (p + (f - p) * u) + v * (L + (M - L) * u),
                p = c._$qT + (d._$qT - c._$qT) * h,
                f = g._$qT + (y._$qT - g._$qT) * h,
                L = m._$qT + (T._$qT - m._$qT) * h,
                M = P._$qT + (S._$qT - P._$qT) * h,
                e._$Yr._$qT = (1 - v) * (p + (f - p) * u) + v * (L + (M - L) * u)
            } else if (4 == o) {
              var E = this._$Y0[n[0]],
                A = this._$Y0[n[1]],
                I = this._$Y0[n[2]],
                w = this._$Y0[n[3]],
                x = this._$Y0[n[4]],
                O = this._$Y0[n[5]],
                D = this._$Y0[n[6]],
                R = this._$Y0[n[7]],
                b = this._$Y0[n[8]],
                F = this._$Y0[n[9]],
                C = this._$Y0[n[10]],
                N = this._$Y0[n[11]],
                B = this._$Y0[n[12]],
                U = this._$Y0[n[13]],
                G = this._$Y0[n[14]],
                Y = this._$Y0[n[15]],
                h = s[0],
                u = s[1],
                v = s[2],
                k = s[3],
                p = E._$fL + (A._$fL - E._$fL) * h,
                f = I._$fL + (w._$fL - I._$fL) * h,
                L = x._$fL + (O._$fL - x._$fL) * h,
                M = D._$fL + (R._$fL - D._$fL) * h,
                V = b._$fL + (F._$fL - b._$fL) * h,
                X = C._$fL + (N._$fL - C._$fL) * h,
                H = B._$fL + (U._$fL - B._$fL) * h,
                W = G._$fL + (Y._$fL - G._$fL) * h;
              e._$Yr._$fL = (1 - k) * ((1 - v) * (p + (f - p) * u) + v * (L + (M - L) * u)) + k * ((1 - v) * (V + (X - V) * u) + v * (H + (W - H) * u)),
                p = E._$gL + (A._$gL - E._$gL) * h,
                f = I._$gL + (w._$gL - I._$gL) * h,
                L = x._$gL + (O._$gL - x._$gL) * h,
                M = D._$gL + (R._$gL - D._$gL) * h,
                V = b._$gL + (F._$gL - b._$gL) * h,
                X = C._$gL + (N._$gL - C._$gL) * h,
                H = B._$gL + (U._$gL - B._$gL) * h,
                W = G._$gL + (Y._$gL - G._$gL) * h,
                e._$Yr._$gL = (1 - k) * ((1 - v) * (p + (f - p) * u) + v * (L + (M - L) * u)) + k * ((1 - v) * (V + (X - V) * u) + v * (H + (W - H) * u)),
                p = E._$B0 + (A._$B0 - E._$B0) * h,
                f = I._$B0 + (w._$B0 - I._$B0) * h,
                L = x._$B0 + (O._$B0 - x._$B0) * h,
                M = D._$B0 + (R._$B0 - D._$B0) * h,
                V = b._$B0 + (F._$B0 - b._$B0) * h,
                X = C._$B0 + (N._$B0 - C._$B0) * h,
                H = B._$B0 + (U._$B0 - B._$B0) * h,
                W = G._$B0 + (Y._$B0 - G._$B0) * h,
                e._$Yr._$B0 = (1 - k) * ((1 - v) * (p + (f - p) * u) + v * (L + (M - L) * u)) + k * ((1 - v) * (V + (X - V) * u) + v * (H + (W - H) * u)),
                p = E._$z0 + (A._$z0 - E._$z0) * h,
                f = I._$z0 + (w._$z0 - I._$z0) * h,
                L = x._$z0 + (O._$z0 - x._$z0) * h,
                M = D._$z0 + (R._$z0 - D._$z0) * h,
                V = b._$z0 + (F._$z0 - b._$z0) * h,
                X = C._$z0 + (N._$z0 - C._$z0) * h,
                H = B._$z0 + (U._$z0 - B._$z0) * h,
                W = G._$z0 + (Y._$z0 - G._$z0) * h,
                e._$Yr._$z0 = (1 - k) * ((1 - v) * (p + (f - p) * u) + v * (L + (M - L) * u)) + k * ((1 - v) * (V + (X - V) * u) + v * (H + (W - H) * u)),
                p = E._$qT + (A._$qT - E._$qT) * h,
                f = I._$qT + (w._$qT - I._$qT) * h,
                L = x._$qT + (O._$qT - x._$qT) * h,
                M = D._$qT + (R._$qT - D._$qT) * h,
                V = b._$qT + (F._$qT - b._$qT) * h,
                X = C._$qT + (N._$qT - C._$qT) * h,
                H = B._$qT + (U._$qT - B._$qT) * h,
                W = G._$qT + (Y._$qT - G._$qT) * h,
                e._$Yr._$qT = (1 - k) * ((1 - v) * (p + (f - p) * u) + v * (L + (M - L) * u)) + k * ((1 - v) * (V + (X - V) * u) + v * (H + (W - H) * u))
            } else {
              for (var j = 0 | Math.pow(2, o), q = new Float32Array(j), J = 0; J < j; J++) {
                for (var Q = J, Z = 1, K = 0; K < o; K++)
                  Z *= Q % 2 == 0 ? 1 - s[K] : s[K],
                  Q /= 2;
                q[J] = Z
              }
              for (var tt = new Array, it = 0; it < j; it++)
                tt[it] = this._$Y0[n[it]];
              for (var et = 0, rt = 0, ot = 0, nt = 0, st = 0, it = 0; it < j; it++)
                et += q[it] * tt[it]._$fL,
                rt += q[it] * tt[it]._$gL,
                ot += q[it] * tt[it]._$B0,
                nt += q[it] * tt[it]._$z0,
                st += q[it] * tt[it]._$qT;
              e._$Yr._$fL = et,
                e._$Yr._$gL = rt,
                e._$Yr._$B0 = ot,
                e._$Yr._$z0 = nt,
                e._$Yr._$qT = st
            }
            var _ = this._$Y0[n[0]];
            e._$Yr.reflectX = _.reflectX,
              e._$Yr.reflectY = _.reflectY
          }
        },
        z.prototype._$2b = function (t, i) {
          this != i._$GT() && console.log("### assert!! ### ");
          var e = i;
          if (e._$hS(!0),
            this._$32()) {
            var r = this.getTargetBaseDataID();
            if (e._$8r == I._$ur && (e._$8r = t.getBaseDataIndex(r)),
              e._$8r < 0)
              at._$so && _._$li("_$L _$0P _$G :: %s", r),
              e._$hS(!1);
            else {
              var o = t.getBaseData(e._$8r);
              if (null != o) {
                var n = t._$q2(e._$8r),
                  s = z._$Xo;
                s[0] = e._$Yr._$fL,
                  s[1] = e._$Yr._$gL;
                var a = z._$io;
                a[0] = 0,
                  a[1] = -.1;
                n._$GT().getType() == I._$c2 ? a[1] = -10 : a[1] = -.1;
                var h = z._$0o;
                this._$Jr(t, o, n, s, a, h);
                var l = Lt._$92(a, h);
                o._$nb(t, n, s, s, 1, 0, 2),
                  e._$Wr._$fL = s[0],
                  e._$Wr._$gL = s[1],
                  e._$Wr._$B0 = e._$Yr._$B0,
                  e._$Wr._$z0 = e._$Yr._$z0,
                  e._$Wr._$qT = e._$Yr._$qT - l * Lt._$NS;
                var $ = n.getTotalScale();
                e.setTotalScale_notForClient($ * e._$Wr._$B0);
                var u = n.getTotalOpacity();
                e.setTotalOpacity(u * e.getInterpolatedOpacity()),
                  e._$Wr.reflectX = e._$Yr.reflectX,
                  e._$Wr.reflectY = e._$Yr.reflectY,
                  e._$hS(n._$yo())
              } else
                e._$hS(!1)
            }
          } else
            e.setTotalScale_notForClient(e._$Yr._$B0),
            e.setTotalOpacity(e.getInterpolatedOpacity())
        },
        z.prototype._$nb = function (t, i, e, r, o, n, s) {
          this != i._$GT() && console.log("### assert!! ### ");
          for (var _, a, h = i, l = null != h._$Wr ? h._$Wr : h._$Yr, $ = Math.sin(Lt._$bS * l._$qT), u = Math.cos(Lt._$bS * l._$qT), p = h.getTotalScale(), f = l.reflectX ? -1 : 1, c = l.reflectY ? -1 : 1, d = u * p * f, g = -$ * p * c, y = $ * p * f, m = u * p * c, T = l._$fL, P = l._$gL, S = o * s, v = n; v < S; v += s)
            _ = e[v],
            a = e[v + 1],
            r[v] = d * _ + g * a + T,
            r[v + 1] = y * _ + m * a + P
        },
        z.prototype._$Jr = function (t, i, e, r, o, n) {
          i != e._$GT() && console.log("### assert!! ### ");
          var s = z._$Lo;
          z._$Lo[0] = r[0],
            z._$Lo[1] = r[1],
            i._$nb(t, e, s, s, 1, 0, 2);
          for (var _ = z._$To, a = z._$Po, h = 1, l = 0; l < 10; l++) {
            if (a[0] = r[0] + h * o[0],
              a[1] = r[1] + h * o[1],
              i._$nb(t, e, a, _, 1, 0, 2),
              _[0] -= s[0],
              _[1] -= s[1],
              0 != _[0] || 0 != _[1])
              return n[0] = _[0],
                void(n[1] = _[1]);
            if (a[0] = r[0] - h * o[0],
              a[1] = r[1] - h * o[1],
              i._$nb(t, e, a, _, 1, 0, 2),
              _[0] -= s[0],
              _[1] -= s[1],
              0 != _[0] || 0 != _[1])
              return _[0] = -_[0],
                _[0] = -_[0],
                n[0] = _[0],
                void(n[1] = _[1]);
            h *= .1
          }
          at._$so && console.log("_$L0 to transform _$SP\n")
        },
        H.prototype = new _t,
        W.prototype = new M,
        W._$ur = -2,
        W._$ES = 500,
        W._$wb = 2,
        W._$8S = 3,
        W._$os = 4,
        W._$52 = W._$ES,
        W._$R2 = W._$ES,
        W._$Sb = function (t) {
          for (var i = t.length - 1; i >= 0; --i) {
            var e = t[i];
            e < W._$52 ? W._$52 = e : e > W._$R2 && (W._$R2 = e)
          }
        },
        W._$or = function () {
          return W._$52
        },
        W._$Pr = function () {
          return W._$R2
        },
        W.prototype._$F0 = function (t) {
          this._$gP = t._$nP(),
            this._$dr = t._$nP(),
            this._$GS = t._$nP(),
            this._$qb = t._$6L(),
            this._$Lb = t._$cS(),
            this._$mS = t._$Tb(),
            t.getFormatVersion() >= G._$T7 ? (this.clipID = t._$nP(),
              this.clipIDList = this.convertClipIDForV2_11(this.clipID)) : this.clipIDList = null,
            W._$Sb(this._$Lb)
        },
        W.prototype.getClipIDList = function () {
          return this.clipIDList
        },
        W.prototype._$Nr = function (t, i) {
          if (i._$IS[0] = !1,
            i._$Us = v._$Z2(t, this._$GS, i._$IS, this._$Lb),
            at._$Zs)
          ;
          else if (i._$IS[0])
            return;
          i._$7s = v._$br(t, this._$GS, i._$IS, this._$mS)
        },
        W.prototype._$2b = function (t) {},
        W.prototype.getDrawDataID = function () {
          return this._$gP
        },
        W.prototype._$j2 = function (t) {
          this._$gP = t
        },
        W.prototype.getOpacity = function (t, i) {
          return i._$7s
        },
        W.prototype._$zS = function (t, i) {
          return i._$Us
        },
        W.prototype.getTargetBaseDataID = function () {
          return this._$dr
        },
        W.prototype._$gs = function (t) {
          this._$dr = t
        },
        W.prototype._$32 = function () {
          return null != this._$dr && this._$dr != yt._$2o()
        },
        W.prototype.getType = function () {},
        j._$42 = 0,
        j.prototype._$1b = function () {
          return this._$3S
        },
        j.prototype.getDrawDataList = function () {
          return this._$aS
        },
        j.prototype._$F0 = function (t) {
          this._$NL = t._$nP(),
            this._$aS = t._$nP(),
            this._$3S = t._$nP()
        },
        j.prototype._$kr = function (t) {
          t._$Zo(this._$3S),
            t._$xo(this._$aS),
            this._$3S = null,
            this._$aS = null
        },
        q.prototype = new i,
        q.loadModel = function (t) {
          var e = new q;
          return i._$62(e, t),
            e
        },
        q.loadModel = function (t) {
          var e = new q;
          return i._$62(e, t),
            e
        },
        q._$to = function () {
          return new q
        },
        q._$er = function (t) {
          var i = new _$5("../_$_r/_$t0/_$Ri/_$_P._$d");
          if (0 == i.exists())
            throw new _$ls("_$t0 _$_ _$6 _$Ui :: " + i._$PL());
          for (var e = ["../_$_r/_$t0/_$Ri/_$_P.512/_$CP._$1", "../_$_r/_$t0/_$Ri/_$_P.512/_$vP._$1", "../_$_r/_$t0/_$Ri/_$_P.512/_$EP._$1", "../_$_r/_$t0/_$Ri/_$_P.512/_$pP._$1"], r = q.loadModel(i._$3b()), o = 0; o < e.length; o++) {
            var n = new _$5(e[o]);
            if (0 == n.exists())
              throw new _$ls("_$t0 _$_ _$6 _$Ui :: " + n._$PL());
            r.setTexture(o, _$nL._$_o(t, n._$3b()))
          }
          return r
        },
        q.prototype.setGL = function (t) {
          this._$zo.setGL(t)
        },
        q.prototype.setTransform = function (t) {
          this._$zo.setTransform(t)
        },
        q.prototype.draw = function () {
          this._$5S.draw(this._$zo)
        },
        q.prototype._$K2 = function () {
          this._$zo._$K2()
        },
        q.prototype.setTexture = function (t, i) {
          null == this._$zo && _._$li("_$Yi for QT _$ki / _$XS() is _$6 _$ui!!"),
            this._$zo.setTexture(t, i)
        },
        q.prototype.setTexture = function (t, i) {
          null == this._$zo && _._$li("_$Yi for QT _$ki / _$XS() is _$6 _$ui!!"),
            this._$zo.setTexture(t, i)
        },
        q.prototype._$Rs = function () {
          return this._$zo._$Rs()
        },
        q.prototype._$Ds = function (t) {
          this._$zo._$Ds(t)
        },
        q.prototype.getDrawParam = function () {
          return this._$zo
        },
        J.prototype = new s,
        J._$cs = "VISIBLE:",
        J._$ar = "LAYOUT:",
        J.MTN_PREFIX_FADEIN = "FADEIN:",
        J.MTN_PREFIX_FADEOUT = "FADEOUT:",
        J._$Co = 0,
        J._$1T = 1,
        J.loadMotion = function (t) {
          var i = k._$C(t);
          return J.loadMotion(i)
        },
        J.loadMotion = function (t) {
          t instanceof ArrayBuffer && (t = new DataView(t));
          var i = new J,
            e = [0],
            r = t.byteLength;
          i._$yT = 0;
          for (var o = 0; o < r; ++o) {
            var n = Q(t, o),
              s = n.charCodeAt(0);
            if ("\n" != n && "\r" != n)
              if ("#" != n)
                if ("$" != n) {
                  if (97 <= s && s <= 122 || 65 <= s && s <= 90 || "_" == n) {
                    for (var _ = o, a = -1; o < r && ("\r" != (n = Q(t, o)) && "\n" != n); ++o)
                      if ("=" == n) {
                        a = o;
                        break
                      }
                    if (a >= 0) {
                      var h = new B;
                      O.startsWith(t, _, J._$cs) ? (h._$RP = B._$hs,
                          h._$4P = O.createString(t, _, a - _)) : O.startsWith(t, _, J._$ar) ? (h._$4P = O.createString(t, _ + 7, a - _ - 7),
                          O.startsWith(t, _ + 7, "ANCHOR_X") ? h._$RP = B._$xs : O.startsWith(t, _ + 7, "ANCHOR_Y") ? h._$RP = B._$us : O.startsWith(t, _ + 7, "SCALE_X") ? h._$RP = B._$qs : O.startsWith(t, _ + 7, "SCALE_Y") ? h._$RP = B._$Ys : O.startsWith(t, _ + 7, "X") ? h._$RP = B._$ws : O.startsWith(t, _ + 7, "Y") && (h._$RP = B._$Ns)) : (h._$RP = B._$Fr,
                          h._$4P = O.createString(t, _, a - _)),
                        i.motions.push(h);
                      var l = 0,
                        $ = [];
                      for (o = a + 1; o < r && ("\r" != (n = Q(t, o)) && "\n" != n); ++o)
                        if ("," != n && " " != n && "\t" != n) {
                          var u = O._$LS(t, r, o, e);
                          if (e[0] > 0) {
                            $.push(u),
                              l++;
                            var p = e[0];
                            if (p < o) {
                              console.log("_$n0 _$hi . @Live2DMotion loadMotion()\n");
                              break
                            }
                            o = p - 1
                          }
                        }
                      h._$I0 = new Float32Array($),
                        l > i._$yT && (i._$yT = l)
                    }
                  }
                } else {
                  for (var _ = o, a = -1; o < r && ("\r" != (n = Q(t, o)) && "\n" != n); ++o)
                    if ("=" == n) {
                      a = o;
                      break
                    }
                  var f = !1;
                  if (a >= 0)
                    for (a == _ + 4 && "f" == Q(t, _ + 1) && "p" == Q(t, _ + 2) && "s" == Q(t, _ + 3) && (f = !0),
                      o = a + 1; o < r && ("\r" != (n = Q(t, o)) && "\n" != n); ++o)
                      if ("," != n && " " != n && "\t" != n) {
                        var u = O._$LS(t, r, o, e);
                        e[0] > 0 && f && 5 < u && u < 121 && (i._$D0 = u),
                          o = e[0]
                      }
                  for (; o < r && ("\n" != Q(t, o) && "\r" != Q(t, o)); ++o)
                  ;
                }
            else
              for (; o < r && ("\n" != Q(t, o) && "\r" != Q(t, o)); ++o)
            ;
          }
          return i._$rr = 1e3 * i._$yT / i._$D0 | 0,
            i
        },
        J.prototype.getDurationMSec = function () {
          return this._$E ? -1 : this._$rr
        },
        J.prototype.getLoopDurationMSec = function () {
          return this._$rr
        },
        J.prototype.dump = function () {
          for (var t = 0; t < this.motions.length; t++) {
            var i = this.motions[t];
            console.log("_$wL[%s] [%d]. ", i._$4P, i._$I0.length);
            for (var e = 0; e < i._$I0.length && e < 10; e++)
              console.log("%5.2f ,", i._$I0[e]);
            console.log("\n")
          }
        },
        J.prototype.updateParamExe = function (t, i, e, r) {
          for (var o = i - r._$z2, n = o * this._$D0 / 1e3, s = 0 | n, _ = n - s, a = 0; a < this.motions.length; a++) {
            var h = this.motions[a],
              l = h._$I0.length,
              $ = h._$4P;
            if (h._$RP == B._$hs) {
              var u = h._$I0[s >= l ? l - 1 : s];
              t.setParamFloat($, u)
            } else if (B._$ws <= h._$RP && h._$RP <= B._$Ys)
            ;
            else {
              var p, f = t.getParamIndex($),
                c = t.getModelContext(),
                d = c.getParamMax(f),
                g = c.getParamMin(f),
                y = .4 * (d - g),
                m = c.getParamFloat(f),
                T = h._$I0[s >= l ? l - 1 : s],
                P = h._$I0[s + 1 >= l ? l - 1 : s + 1];
              p = T < P && P - T > y || T > P && T - P > y ? T : T + (P - T) * _;
              var S = m + (p - m) * e;
              t.setParamFloat($, S)
            }
          }
          s >= this._$yT && (this._$E ? (r._$z2 = i,
              this.loopFadeIn && (r._$bs = i)) : r._$9L = !0),
            this._$eP = e
        },
        J.prototype._$r0 = function () {
          return this._$E
        },
        J.prototype._$aL = function (t) {
          this._$E = t
        },
        J.prototype._$S0 = function () {
          return this._$D0
        },
        J.prototype._$U0 = function (t) {
          this._$D0 = t
        },
        J.prototype.isLoopFadeIn = function () {
          return this.loopFadeIn
        },
        J.prototype.setLoopFadeIn = function (t) {
          this.loopFadeIn = t
        },
        N.prototype.clear = function () {
          this.size = 0
        },
        N.prototype.add = function (t) {
          if (this._$P.length <= this.size) {
            var i = new Float32Array(2 * this.size);
            w._$jT(this._$P, 0, i, 0, this.size),
              this._$P = i
          }
          this._$P[this.size++] = t
        },
        N.prototype._$BL = function () {
          var t = new Float32Array(this.size);
          return w._$jT(this._$P, 0, t, 0, this.size),
            t
        },
        B._$Fr = 0,
        B._$hs = 1,
        B._$ws = 100,
        B._$Ns = 101,
        B._$xs = 102,
        B._$us = 103,
        B._$qs = 104,
        B._$Ys = 105,
        Z.prototype = new I,
        Z._$gT = new Array,
        Z.prototype._$zP = function () {
          this._$GS = new D,
            this._$GS._$zP()
        },
        Z.prototype._$F0 = function (t) {
          I.prototype._$F0.call(this, t),
            this._$A = t._$6L(),
            this._$o = t._$6L(),
            this._$GS = t._$nP(),
            this._$Eo = t._$nP(),
            I.prototype.readV2_opacity.call(this, t)
        },
        Z.prototype.init = function (t) {
          var i = new K(this),
            e = (this._$o + 1) * (this._$A + 1);
          return null != i._$Cr && (i._$Cr = null),
            i._$Cr = new Float32Array(2 * e),
            null != i._$hr && (i._$hr = null),
            this._$32() ? i._$hr = new Float32Array(2 * e) : i._$hr = null,
            i
        },
        Z.prototype._$Nr = function (t, i) {
          var e = i;
          if (this._$GS._$Ur(t)) {
            var r = this._$VT(),
              o = Z._$gT;
            o[0] = !1,
              v._$Vr(t, this._$GS, o, r, this._$Eo, e._$Cr, 0, 2),
              i._$Ib(o[0]),
              this.interpolateOpacity(t, this._$GS, i, o)
          }
        },
        Z.prototype._$2b = function (t, i) {
          var e = i;
          if (e._$hS(!0),
            this._$32()) {
            var r = this.getTargetBaseDataID();
            if (e._$8r == I._$ur && (e._$8r = t.getBaseDataIndex(r)),
              e._$8r < 0)
              at._$so && _._$li("_$L _$0P _$G :: %s", r),
              e._$hS(!1);
            else {
              var o = t.getBaseData(e._$8r),
                n = t._$q2(e._$8r);
              if (null != o && n._$yo()) {
                var s = n.getTotalScale();
                e.setTotalScale_notForClient(s);
                var a = n.getTotalOpacity();
                e.setTotalOpacity(a * e.getInterpolatedOpacity()),
                  o._$nb(t, n, e._$Cr, e._$hr, this._$VT(), 0, 2),
                  e._$hS(!0)
              } else
                e._$hS(!1)
            }
          } else
            e.setTotalOpacity(e.getInterpolatedOpacity())
        },
        Z.prototype._$nb = function (t, i, e, r, o, n, s) {
          var _ = i,
            a = null != _._$hr ? _._$hr : _._$Cr;
          Z.transformPoints_sdk2(e, r, o, n, s, a, this._$o, this._$A)
        },
        Z.transformPoints_sdk2 = function (i, e, r, o, n, s, _, a) {
          for (var h, l, $, u = r * n, p = 0, f = 0, c = 0, d = 0, g = 0, y = 0, m = !1, T = o; T < u; T += n) {
            var P, S, v, L;
            if (v = i[T],
              L = i[T + 1],
              P = v * _,
              S = L * a,
              P < 0 || S < 0 || _ <= P || a <= S) {
              var M = _ + 1;
              if (!m) {
                m = !0,
                  p = .25 * (s[2 * (0 + 0 * M)] + s[2 * (_ + 0 * M)] + s[2 * (0 + a * M)] + s[2 * (_ + a * M)]),
                  f = .25 * (s[2 * (0 + 0 * M) + 1] + s[2 * (_ + 0 * M) + 1] + s[2 * (0 + a * M) + 1] + s[2 * (_ + a * M) + 1]);
                var E = s[2 * (_ + a * M)] - s[2 * (0 + 0 * M)],
                  A = s[2 * (_ + a * M) + 1] - s[2 * (0 + 0 * M) + 1],
                  I = s[2 * (_ + 0 * M)] - s[2 * (0 + a * M)],
                  w = s[2 * (_ + 0 * M) + 1] - s[2 * (0 + a * M) + 1];
                c = .5 * (E + I),
                  d = .5 * (A + w),
                  g = .5 * (E - I),
                  y = .5 * (A - w),
                  p -= .5 * (c + g),
                  f -= .5 * (d + y)
              }
              if (-2 < v && v < 3 && -2 < L && L < 3)
                if (v <= 0)
                  if (L <= 0) {
                    var x = s[2 * (0 + 0 * M)],
                      O = s[2 * (0 + 0 * M) + 1],
                      D = p - 2 * c,
                      R = f - 2 * d,
                      b = p - 2 * g,
                      F = f - 2 * y,
                      C = p - 2 * c - 2 * g,
                      N = f - 2 * d - 2 * y,
                      B = .5 * (v - -2),
                      U = .5 * (L - -2);
                    B + U <= 1 ? (e[T] = C + (b - C) * B + (D - C) * U,
                      e[T + 1] = N + (F - N) * B + (R - N) * U) : (e[T] = x + (D - x) * (1 - B) + (b - x) * (1 - U),
                      e[T + 1] = O + (R - O) * (1 - B) + (F - O) * (1 - U))
                  } else if (L >= 1) {
                var b = s[2 * (0 + a * M)],
                  F = s[2 * (0 + a * M) + 1],
                  C = p - 2 * c + 1 * g,
                  N = f - 2 * d + 1 * y,
                  x = p + 3 * g,
                  O = f + 3 * y,
                  D = p - 2 * c + 3 * g,
                  R = f - 2 * d + 3 * y,
                  B = .5 * (v - -2),
                  U = .5 * (L - 1);
                B + U <= 1 ? (e[T] = C + (b - C) * B + (D - C) * U,
                  e[T + 1] = N + (F - N) * B + (R - N) * U) : (e[T] = x + (D - x) * (1 - B) + (b - x) * (1 - U),
                  e[T + 1] = O + (R - O) * (1 - B) + (F - O) * (1 - U))
              } else {
                var G = 0 | S;
                G == a && (G = a - 1);
                var B = .5 * (v - -2),
                  U = S - G,
                  Y = G / a,
                  k = (G + 1) / a,
                  b = s[2 * (0 + G * M)],
                  F = s[2 * (0 + G * M) + 1],
                  x = s[2 * (0 + (G + 1) * M)],
                  O = s[2 * (0 + (G + 1) * M) + 1],
                  C = p - 2 * c + Y * g,
                  N = f - 2 * d + Y * y,
                  D = p - 2 * c + k * g,
                  R = f - 2 * d + k * y;
                B + U <= 1 ? (e[T] = C + (b - C) * B + (D - C) * U,
                  e[T + 1] = N + (F - N) * B + (R - N) * U) : (e[T] = x + (D - x) * (1 - B) + (b - x) * (1 - U),
                  e[T + 1] = O + (R - O) * (1 - B) + (F - O) * (1 - U))
              } else if (1 <= v)
                if (L <= 0) {
                  var D = s[2 * (_ + 0 * M)],
                    R = s[2 * (_ + 0 * M) + 1],
                    x = p + 3 * c,
                    O = f + 3 * d,
                    C = p + 1 * c - 2 * g,
                    N = f + 1 * d - 2 * y,
                    b = p + 3 * c - 2 * g,
                    F = f + 3 * d - 2 * y,
                    B = .5 * (v - 1),
                    U = .5 * (L - -2);
                  B + U <= 1 ? (e[T] = C + (b - C) * B + (D - C) * U,
                    e[T + 1] = N + (F - N) * B + (R - N) * U) : (e[T] = x + (D - x) * (1 - B) + (b - x) * (1 - U),
                    e[T + 1] = O + (R - O) * (1 - B) + (F - O) * (1 - U))
                } else if (L >= 1) {
                var C = s[2 * (_ + a * M)],
                  N = s[2 * (_ + a * M) + 1],
                  b = p + 3 * c + 1 * g,
                  F = f + 3 * d + 1 * y,
                  D = p + 1 * c + 3 * g,
                  R = f + 1 * d + 3 * y,
                  x = p + 3 * c + 3 * g,
                  O = f + 3 * d + 3 * y,
                  B = .5 * (v - 1),
                  U = .5 * (L - 1);
                B + U <= 1 ? (e[T] = C + (b - C) * B + (D - C) * U,
                  e[T + 1] = N + (F - N) * B + (R - N) * U) : (e[T] = x + (D - x) * (1 - B) + (b - x) * (1 - U),
                  e[T + 1] = O + (R - O) * (1 - B) + (F - O) * (1 - U))
              } else {
                var G = 0 | S;
                G == a && (G = a - 1);
                var B = .5 * (v - 1),
                  U = S - G,
                  Y = G / a,
                  k = (G + 1) / a,
                  C = s[2 * (_ + G * M)],
                  N = s[2 * (_ + G * M) + 1],
                  D = s[2 * (_ + (G + 1) * M)],
                  R = s[2 * (_ + (G + 1) * M) + 1],
                  b = p + 3 * c + Y * g,
                  F = f + 3 * d + Y * y,
                  x = p + 3 * c + k * g,
                  O = f + 3 * d + k * y;
                B + U <= 1 ? (e[T] = C + (b - C) * B + (D - C) * U,
                  e[T + 1] = N + (F - N) * B + (R - N) * U) : (e[T] = x + (D - x) * (1 - B) + (b - x) * (1 - U),
                  e[T + 1] = O + (R - O) * (1 - B) + (F - O) * (1 - U))
              } else if (L <= 0) {
                var V = 0 | P;
                V == _ && (V = _ - 1);
                var B = P - V,
                  U = .5 * (L - -2),
                  X = V / _,
                  z = (V + 1) / _,
                  D = s[2 * (V + 0 * M)],
                  R = s[2 * (V + 0 * M) + 1],
                  x = s[2 * (V + 1 + 0 * M)],
                  O = s[2 * (V + 1 + 0 * M) + 1],
                  C = p + X * c - 2 * g,
                  N = f + X * d - 2 * y,
                  b = p + z * c - 2 * g,
                  F = f + z * d - 2 * y;
                B + U <= 1 ? (e[T] = C + (b - C) * B + (D - C) * U,
                  e[T + 1] = N + (F - N) * B + (R - N) * U) : (e[T] = x + (D - x) * (1 - B) + (b - x) * (1 - U),
                  e[T + 1] = O + (R - O) * (1 - B) + (F - O) * (1 - U))
              } else if (L >= 1) {
                var V = 0 | P;
                V == _ && (V = _ - 1);
                var B = P - V,
                  U = .5 * (L - 1),
                  X = V / _,
                  z = (V + 1) / _,
                  C = s[2 * (V + a * M)],
                  N = s[2 * (V + a * M) + 1],
                  b = s[2 * (V + 1 + a * M)],
                  F = s[2 * (V + 1 + a * M) + 1],
                  D = p + X * c + 3 * g,
                  R = f + X * d + 3 * y,
                  x = p + z * c + 3 * g,
                  O = f + z * d + 3 * y;
                B + U <= 1 ? (e[T] = C + (b - C) * B + (D - C) * U,
                  e[T + 1] = N + (F - N) * B + (R - N) * U) : (e[T] = x + (D - x) * (1 - B) + (b - x) * (1 - U),
                  e[T + 1] = O + (R - O) * (1 - B) + (F - O) * (1 - U))
              } else
                t.err.printf("_$li calc : %.4f , %.4f\t\t\t\t\t@@BDBoxGrid\n", v, L);
              else
                e[T] = p + v * c + L * g,
                e[T + 1] = f + v * d + L * y
            } else
              l = P - (0 | P),
              $ = S - (0 | S),
              h = 2 * ((0 | P) + (0 | S) * (_ + 1)),
              l + $ < 1 ? (e[T] = s[h] * (1 - l - $) + s[h + 2] * l + s[h + 2 * (_ + 1)] * $,
                e[T + 1] = s[h + 1] * (1 - l - $) + s[h + 3] * l + s[h + 2 * (_ + 1) + 1] * $) : (e[T] = s[h + 2 * (_ + 1) + 2] * (l - 1 + $) + s[h + 2 * (_ + 1)] * (1 - l) + s[h + 2] * (1 - $),
                e[T + 1] = s[h + 2 * (_ + 1) + 3] * (l - 1 + $) + s[h + 2 * (_ + 1) + 1] * (1 - l) + s[h + 3] * (1 - $))
          }
        },
        Z.prototype.transformPoints_sdk1 = function (t, i, e, r, o, n, s) {
          for (var _, a, h, l, $, u, p, f = i, c = this._$o, d = this._$A, g = o * s, y = null != f._$hr ? f._$hr : f._$Cr, m = n; m < g; m += s)
            at._$ts ? (_ = e[m],
              a = e[m + 1],
              _ < 0 ? _ = 0 : _ > 1 && (_ = 1),
              a < 0 ? a = 0 : a > 1 && (a = 1),
              _ *= c,
              a *= d,
              h = 0 | _,
              l = 0 | a,
              h > c - 1 && (h = c - 1),
              l > d - 1 && (l = d - 1),
              u = _ - h,
              p = a - l,
              $ = 2 * (h + l * (c + 1))) : (_ = e[m] * c,
              a = e[m + 1] * d,
              u = _ - (0 | _),
              p = a - (0 | a),
              $ = 2 * ((0 | _) + (0 | a) * (c + 1))),
            u + p < 1 ? (r[m] = y[$] * (1 - u - p) + y[$ + 2] * u + y[$ + 2 * (c + 1)] * p,
              r[m + 1] = y[$ + 1] * (1 - u - p) + y[$ + 3] * u + y[$ + 2 * (c + 1) + 1] * p) : (r[m] = y[$ + 2 * (c + 1) + 2] * (u - 1 + p) + y[$ + 2 * (c + 1)] * (1 - u) + y[$ + 2] * (1 - p),
              r[m + 1] = y[$ + 2 * (c + 1) + 3] * (u - 1 + p) + y[$ + 2 * (c + 1) + 1] * (1 - u) + y[$ + 3] * (1 - p))
        },
        Z.prototype._$VT = function () {
          return (this._$o + 1) * (this._$A + 1)
        },
        Z.prototype.getType = function () {
          return I._$_b
        },
        K.prototype = new _t,
        tt._$42 = 0,
        tt.prototype._$zP = function () {
          this._$3S = new Array,
            this._$aS = new Array
        },
        tt.prototype._$F0 = function (t) {
          this._$g0 = t._$8L(),
            this.visible = t._$8L(),
            this._$NL = t._$nP(),
            this._$3S = t._$nP(),
            this._$aS = t._$nP()
        },
        tt.prototype.init = function (t) {
          var i = new it(this);
          return i.setPartsOpacity(this.isVisible() ? 1 : 0),
            i
        },
        tt.prototype._$6o = function (t) {
          if (null == this._$3S)
            throw new Error("_$3S _$6 _$Wo@_$6o");
          this._$3S.push(t)
        },
        tt.prototype._$3o = function (t) {
          if (null == this._$aS)
            throw new Error("_$aS _$6 _$Wo@_$3o");
          this._$aS.push(t)
        },
        tt.prototype._$Zo = function (t) {
          this._$3S = t
        },
        tt.prototype._$xo = function (t) {
          this._$aS = t
        },
        tt.prototype.isVisible = function () {
          return this.visible
        },
        tt.prototype._$uL = function () {
          return this._$g0
        },
        tt.prototype._$KP = function (t) {
          this.visible = t
        },
        tt.prototype._$ET = function (t) {
          this._$g0 = t
        },
        tt.prototype.getBaseData = function () {
          return this._$3S
        },
        tt.prototype.getDrawData = function () {
          return this._$aS
        },
        tt.prototype._$p2 = function () {
          return this._$NL
        },
        tt.prototype._$ob = function (t) {
          this._$NL = t
        },
        tt.prototype.getPartsID = function () {
          return this._$NL
        },
        tt.prototype._$MP = function (t) {
          this._$NL = t
        },
        it.prototype = new $,
        it.prototype.getPartsOpacity = function () {
          return this._$VS
        },
        it.prototype.setPartsOpacity = function (t) {
          this._$VS = t
        },
        et._$L7 = function () {
          u._$27(),
            yt._$27(),
            b._$27(),
            l._$27()
        },
        et.prototype.toString = function () {
          return this.id
        },
        rt.prototype._$F0 = function (t) {},
        ot.prototype._$1s = function () {
          return this._$4S
        },
        ot.prototype._$zP = function () {
          this._$4S = new Array
        },
        ot.prototype._$F0 = function (t) {
          this._$4S = t._$nP()
        },
        ot.prototype._$Ks = function (t) {
          this._$4S.push(t)
        },
        nt.tr = new gt,
        nt._$50 = new gt,
        nt._$Ti = new Array(0, 0),
        nt._$Pi = new Array(0, 0),
        nt._$B = new Array(0, 0),
        nt.prototype._$lP = function (t, i, e, r) {
          this.viewport = new Array(t, i, e, r)
        },
        nt.prototype._$bL = function () {
          this.context.save();
          var t = this.viewport;
          null != t && (this.context.beginPath(),
            this.context._$Li(t[0], t[1], t[2], t[3]),
            this.context.clip())
        },
        nt.prototype._$ei = function () {
          this.context.restore()
        },
        nt.prototype.drawElements = function (t, i, e, r, o, n, s, a) {
          try {
            o != this._$Qo && (this._$Qo = o,
              this.context.globalAlpha = o);
            for (var h = i.length, l = t.width, $ = t.height, u = this.context, p = this._$xP, f = this._$uP, c = this._$6r, d = this._$3r, g = nt.tr, y = nt._$Ti, m = nt._$Pi, T = nt._$B, P = 0; P < h; P += 3) {
              u.save();
              var S = i[P],
                v = i[P + 1],
                L = i[P + 2],
                M = p + c * e[2 * S],
                E = f + d * e[2 * S + 1],
                A = p + c * e[2 * v],
                I = f + d * e[2 * v + 1],
                w = p + c * e[2 * L],
                x = f + d * e[2 * L + 1];
              s && (s._$PS(M, E, T),
                M = T[0],
                E = T[1],
                s._$PS(A, I, T),
                A = T[0],
                I = T[1],
                s._$PS(w, x, T),
                w = T[0],
                x = T[1]);
              var O = l * r[2 * S],
                D = $ - $ * r[2 * S + 1],
                R = l * r[2 * v],
                b = $ - $ * r[2 * v + 1],
                F = l * r[2 * L],
                C = $ - $ * r[2 * L + 1],
                N = Math.atan2(b - D, R - O),
                B = Math.atan2(I - E, A - M),
                U = A - M,
                G = I - E,
                Y = Math.sqrt(U * U + G * G),
                k = R - O,
                V = b - D,
                X = Math.sqrt(k * k + V * V),
                z = Y / X;
              It._$ni(F, C, O, D, R - O, b - D, -(b - D), R - O, y),
                It._$ni(w, x, M, E, A - M, I - E, -(I - E), A - M, m);
              var H = (m[0] - y[0]) / y[1],
                W = Math.min(O, R, F),
                j = Math.max(O, R, F),
                q = Math.min(D, b, C),
                J = Math.max(D, b, C),
                Q = Math.floor(W),
                Z = Math.floor(q),
                K = Math.ceil(j),
                tt = Math.ceil(J);
              g.identity(),
                g.translate(M, E),
                g.rotate(B),
                g.scale(1, m[1] / y[1]),
                g.shear(H, 0),
                g.scale(z, z),
                g.rotate(-N),
                g.translate(-O, -D),
                g.setContext(u);
              if (n || (n = 1.2),
                at.IGNORE_EXPAND && (n = 0),
                at.USE_CACHED_POLYGON_IMAGE) {
                var it = a._$e0;
                if (it.gl_cacheImage = it.gl_cacheImage || {},
                  !it.gl_cacheImage[P]) {
                  var et = nt.createCanvas(K - Q, tt - Z);
                  at.DEBUG_DATA.LDGL_CANVAS_MB = at.DEBUG_DATA.LDGL_CANVAS_MB || 0,
                    at.DEBUG_DATA.LDGL_CANVAS_MB += (K - Q) * (tt - Z) * 4;
                  var rt = et.getContext("2d");
                  rt.translate(-Q, -Z),
                    nt.clip(rt, g, n, Y, O, D, R, b, F, C, M, E, A, I, w, x),
                    rt.drawImage(t, 0, 0),
                    it.gl_cacheImage[P] = {
                      cacheCanvas: et,
                      cacheContext: rt
                    }
                }
                u.drawImage(it.gl_cacheImage[P].cacheCanvas, Q, Z)
              } else
                at.IGNORE_CLIP || nt.clip(u, g, n, Y, O, D, R, b, F, C, M, E, A, I, w, x),
                at.USE_ADJUST_TRANSLATION && (W = 0,
                  j = l,
                  q = 0,
                  J = $),
                u.drawImage(t, W, q, j - W, J - q, W, q, j - W, J - q);
              u.restore()
            }
          } catch (t) {
            _._$Rb(t)
          }
        },
        nt.clip = function (t, i, e, r, o, n, s, _, a, h, l, $, u, p, f, c) {
          e > .02 ? nt.expandClip(t, i, e, r, l, $, u, p, f, c) : nt.clipWithTransform(t, null, o, n, s, _, a, h)
        },
        nt.expandClip = function (t, i, e, r, o, n, s, _, a, h) {
          var l = s - o,
            $ = _ - n,
            u = a - o,
            p = h - n,
            f = l * p - $ * u > 0 ? e : -e,
            c = -$,
            d = l,
            g = a - s,
            y = h - _,
            m = -y,
            T = g,
            P = Math.sqrt(g * g + y * y),
            S = -p,
            v = u,
            L = Math.sqrt(u * u + p * p),
            M = o - f * c / r,
            E = n - f * d / r,
            A = s - f * c / r,
            I = _ - f * d / r,
            w = s - f * m / P,
            x = _ - f * T / P,
            O = a - f * m / P,
            D = h - f * T / P,
            R = o + f * S / L,
            b = n + f * v / L,
            F = a + f * S / L,
            C = h + f * v / L,
            N = nt._$50;
          return null != i._$P2(N) && (nt.clipWithTransform(t, N, M, E, A, I, w, x, O, D, F, C, R, b),
            !0)
        },
        nt.clipWithTransform = function (t, i, e, r, o, n, s, a) {
          if (arguments.length < 7)
            return void _._$li("err : @LDGL.clip()");
          if (!(arguments[1] instanceof gt))
            return void _._$li("err : a[0] is _$6 LDTransform @LDGL.clip()");
          var h = nt._$B,
            l = i,
            $ = arguments;
          if (t.beginPath(),
            l) {
            l._$PS($[2], $[3], h),
              t.moveTo(h[0], h[1]);
            for (var u = 4; u < $.length; u += 2)
              l._$PS($[u], $[u + 1], h),
              t.lineTo(h[0], h[1])
          } else {
            t.moveTo($[2], $[3]);
            for (var u = 4; u < $.length; u += 2)
              t.lineTo($[u], $[u + 1])
          }
          t.clip()
        },
        nt.createCanvas = function (t, i) {
          var e = document.createElement("canvas");
          return e.setAttribute("width", t),
            e.setAttribute("height", i),
            e || _._$li("err : " + e),
            e
        },
        nt.dumpValues = function () {
          for (var t = "", i = 0; i < arguments.length; i++)
            t += "[" + i + "]= " + arguments[i].toFixed(3) + " , ";
          console.log(t)
        },
        st.prototype._$F0 = function (t) {
          this._$TT = t._$_T(),
            this._$LT = t._$_T(),
            this._$FS = t._$_T(),
            this._$wL = t._$nP()
        },
        st.prototype.getMinValue = function () {
          return this._$TT
        },
        st.prototype.getMaxValue = function () {
          return this._$LT
        },
        st.prototype.getDefaultValue = function () {
          return this._$FS
        },
        st.prototype.getParamID = function () {
          return this._$wL
        },
        _t.prototype._$yo = function () {
          return this._$AT && !this._$JS
        },
        _t.prototype._$hS = function (t) {
          this._$AT = t
        },
        _t.prototype._$GT = function () {
          return this._$e0
        },
        _t.prototype._$l2 = function (t) {
          this._$IP = t
        },
        _t.prototype.getPartsIndex = function () {
          return this._$IP
        },
        _t.prototype._$x2 = function () {
          return this._$JS
        },
        _t.prototype._$Ib = function (t) {
          this._$JS = t
        },
        _t.prototype.getTotalScale = function () {
          return this.totalScale
        },
        _t.prototype.setTotalScale_notForClient = function (t) {
          this.totalScale = t
        },
        _t.prototype.getInterpolatedOpacity = function () {
          return this._$7s
        },
        _t.prototype.setInterpolatedOpacity = function (t) {
          this._$7s = t
        },
        _t.prototype.getTotalOpacity = function (t) {
          return this.totalOpacity
        },
        _t.prototype.setTotalOpacity = function (t) {
          this.totalOpacity = t
        },
        at._$2s = "2.1.00_1",
        at._$Kr = 201001e3,
        at._$sP = !0,
        at._$so = !0,
        at._$cb = !1,
        at._$3T = !0,
        at._$Ts = !0,
        at._$fb = !0,
        at._$ts = !0,
        at.L2D_DEFORMER_EXTEND = !0,
        at._$Wb = !1;
      at._$yr = !1,
        at._$Zs = !1,
        at.L2D_NO_ERROR = 0,
        at._$i7 = 1e3,
        at._$9s = 1001,
        at._$es = 1100,
        at._$r7 = 2e3,
        at._$07 = 2001,
        at._$b7 = 2002,
        at._$H7 = 4e3,
        at.L2D_COLOR_BLEND_MODE_MULT = 0,
        at.L2D_COLOR_BLEND_MODE_ADD = 1,
        at.L2D_COLOR_BLEND_MODE_INTERPOLATE = 2,
        at._$6b = !0,
        at._$cT = 0,
        at.clippingMaskBufferSize = 256,
        at.glContext = new Array,
        at.frameBuffers = new Array,
        at.fTexture = new Array,
        at.IGNORE_CLIP = !1,
        at.IGNORE_EXPAND = !1,
        at.EXPAND_W = 2,
        at.USE_ADJUST_TRANSLATION = !0,
        at.USE_CANVAS_TRANSFORM = !0,
        at.USE_CACHED_POLYGON_IMAGE = !1,
        at.DEBUG_DATA = {},
        at.PROFILE_IOS_SPEED = {
          PROFILE_NAME: "iOS Speed",
          USE_ADJUST_TRANSLATION: !0,
          USE_CACHED_POLYGON_IMAGE: !0,
          EXPAND_W: 4
        },
        at.PROFILE_IOS_QUALITY = {
          PROFILE_NAME: "iOS HiQ",
          USE_ADJUST_TRANSLATION: !0,
          USE_CACHED_POLYGON_IMAGE: !1,
          EXPAND_W: 2
        },
        at.PROFILE_IOS_DEFAULT = at.PROFILE_IOS_QUALITY,
        at.PROFILE_ANDROID = {
          PROFILE_NAME: "Android",
          USE_ADJUST_TRANSLATION: !1,
          USE_CACHED_POLYGON_IMAGE: !1,
          EXPAND_W: 2
        },
        at.PROFILE_DESKTOP = {
          PROFILE_NAME: "Desktop",
          USE_ADJUST_TRANSLATION: !1,
          USE_CACHED_POLYGON_IMAGE: !1,
          EXPAND_W: 2
        },
        at.initProfile = function () {
          Et.isIOS() ? at.setupProfile(at.PROFILE_IOS_DEFAULT) : Et.isAndroid() ? at.setupProfile(at.PROFILE_ANDROID) : at.setupProfile(at.PROFILE_DESKTOP)
        },
        at.setupProfile = function (t, i) {
          if ("number" == typeof t)
            switch (t) {
              case 9901:
                t = at.PROFILE_IOS_SPEED;
                break;
              case 9902:
                t = at.PROFILE_IOS_QUALITY;
                break;
              case 9903:
                t = at.PROFILE_IOS_DEFAULT;
                break;
              case 9904:
                t = at.PROFILE_ANDROID;
                break;
              case 9905:
                t = at.PROFILE_DESKTOP;
                break;
              default:
                alert("profile _$6 _$Ui : " + t)
            }
          arguments.length < 2 && (i = !0),i
          // TODO
          // i; && console.log("profile : " + t.PROFILE_NAME);
          for (var e in t)
            at[e] = t[e],i
            // TODO
            // i && console.log("  [" + e + "] = " + t[e])
        },
        at.init = function () {
          if (at._$6b) {
            // TODO
            //console.log("Live2D %s", at._$2s),
              at._$6b = !1;
            !0,
            at.initProfile()
          }
        },
        at.getVersionStr = function () {
          return at._$2s
        },
        at.getVersionNo = function () {
          return at._$Kr
        },
        at._$sT = function (t) {
          at._$cT = t
        },
        at.getError = function () {
          var t = at._$cT;
          return at._$cT = 0,
            t
        },
        at.dispose = function () {
          at.glContext = [],
            at.frameBuffers = [],
            at.fTexture = []
        },
        at.setGL = function (t, i) {
          var e = i || 0;
          at.glContext[e] = t
        },
        at.getGL = function (t) {
          return at.glContext[t]
        },
        at.setClippingMaskBufferSize = function (t) {
          at.clippingMaskBufferSize = t
        },
        at.getClippingMaskBufferSize = function () {
          return at.clippingMaskBufferSize
        },
        at.deleteBuffer = function (t) {
          at.getGL(t).deleteFramebuffer(at.frameBuffers[t].framebuffer),
            delete at.frameBuffers[t],
            delete at.glContext[t]
        },
        ht._$r2 = function (t) {
          return t < 0 ? 0 : t > 1 ? 1 : .5 - .5 * Math.cos(t * Lt.PI_F)
        },
        lt._$fr = -1,
        lt.prototype.toString = function () {
          return this._$ib
        },
        $t.prototype = new W,
        $t._$42 = 0,
        $t._$Os = 30,
        $t._$ms = 0,
        $t._$ns = 1,
        $t._$_s = 2,
        $t._$gT = new Array,
        $t.prototype._$_S = function (t) {
          this._$LP = t
        },
        $t.prototype.getTextureNo = function () {
          return this._$LP
        },
        $t.prototype._$ZL = function () {
          return this._$Qi
        },
        $t.prototype._$H2 = function () {
          return this._$JP
        },
        $t.prototype.getNumPoints = function () {
          return this._$d0
        },
        $t.prototype.getType = function () {
          return W._$wb
        },
        $t.prototype._$B2 = function (t, i, e) {
          var r = i,
            o = null != r._$hr ? r._$hr : r._$Cr;
          switch (U._$do) {
            default:
            case U._$Ms:
              throw new Error("_$L _$ro ");
            case U._$Qs:
              for (var n = this._$d0 - 1; n >= 0; --n)
                o[n * U._$No + 4] = e
          }
        },
        $t.prototype._$zP = function () {
          this._$GS = new D,
            this._$GS._$zP()
        },
        $t.prototype._$F0 = function (t) {
          W.prototype._$F0.call(this, t),
            this._$LP = t._$6L(),
            this._$d0 = t._$6L(),
            this._$Yo = t._$6L();
          var i = t._$nP();
          this._$BP = new Int16Array(3 * this._$Yo);
          for (var e = 3 * this._$Yo - 1; e >= 0; --e)
            this._$BP[e] = i[e];
          if (this._$Eo = t._$nP(),
            this._$Qi = t._$nP(),
            t.getFormatVersion() >= G._$s7) {
            if (this._$JP = t._$6L(),
              0 != this._$JP) {
              if (0 != (1 & this._$JP)) {
                var r = t._$6L();
                null == this._$5P && (this._$5P = new Object),
                  this._$5P._$Hb = parseInt(r)
              }
              0 != (this._$JP & $t._$Os) ? this._$6s = (this._$JP & $t._$Os) >> 1 : this._$6s = $t._$ms,
                0 != (32 & this._$JP) && (this.culling = !1)
            }
          } else
            this._$JP = 0
        },
        $t.prototype.init = function (t) {
          var i = new ut(this),
            e = this._$d0 * U._$No,
            r = this._$32();
          switch (null != i._$Cr && (i._$Cr = null),
            i._$Cr = new Float32Array(e),
            null != i._$hr && (i._$hr = null),
            i._$hr = r ? new Float32Array(e) : null,
            U._$do) {
            default:
            case U._$Ms:
              if (U._$Ls)
                for (var o = this._$d0 - 1; o >= 0; --o) {
                  var n = o << 1;
                  this._$Qi[n + 1] = 1 - this._$Qi[n + 1]
                }
              break;
            case U._$Qs:
              for (var o = this._$d0 - 1; o >= 0; --o) {
                var n = o << 1,
                  s = o * U._$No,
                  _ = this._$Qi[n],
                  a = this._$Qi[n + 1];
                i._$Cr[s] = _,
                  i._$Cr[s + 1] = a,
                  i._$Cr[s + 4] = 0,
                  r && (i._$hr[s] = _,
                    i._$hr[s + 1] = a,
                    i._$hr[s + 4] = 0)
              }
          }
          return i
        },
        $t.prototype._$Nr = function (t, i) {
          var e = i;
          if (this != e._$GT() && console.log("### assert!! ### "),
            this._$GS._$Ur(t) && (W.prototype._$Nr.call(this, t, e),
              !e._$IS[0])) {
            var r = $t._$gT;
            r[0] = !1,
              v._$Vr(t, this._$GS, r, this._$d0, this._$Eo, e._$Cr, U._$i2, U._$No)
          }
        },
        $t.prototype._$2b = function (t, i) {
          try {
            this != i._$GT() && console.log("### assert!! ### ");
            var e = !1;
            i._$IS[0] && (e = !0);
            var r = i;
            if (!e && (W.prototype._$2b.call(this, t),
                this._$32())) {
              var o = this.getTargetBaseDataID();
              if (r._$8r == W._$ur && (r._$8r = t.getBaseDataIndex(o)),
                r._$8r < 0)
                at._$so && _._$li("_$L _$0P _$G :: %s", o);
              else {
                var n = t.getBaseData(r._$8r),
                  s = t._$q2(r._$8r);
                null == n || s._$x2() ? r._$AT = !1 : (n._$nb(t, s, r._$Cr, r._$hr, this._$d0, U._$i2, U._$No),
                    r._$AT = !0),
                  r.baseOpacity = s.getTotalOpacity()
              }
            }
          } catch (t) {
            throw t
          }
        },
        $t.prototype.draw = function (t, i, e) {
          if (this != e._$GT() && console.log("### assert!! ### "),
            !e._$IS[0]) {
            var r = e,
              o = this._$LP;
            o < 0 && (o = 1);
            var n = this.getOpacity(i, r) * e._$VS * e.baseOpacity,
              s = null != r._$hr ? r._$hr : r._$Cr;
            t.setClipBufPre_clipContextForDraw(e.clipBufPre_clipContext),
              t._$WP(this.culling),
              t._$Uo(o, 3 * this._$Yo, this._$BP, s, this._$Qi, n, this._$6s, r)
          }
        },
        $t.prototype.dump = function () {
          console.log("  _$yi( %d ) , _$d0( %d ) , _$Yo( %d ) \n", this._$LP, this._$d0, this._$Yo),
            console.log("  _$Oi _$di = { ");
          for (var t = 0; t < this._$BP.length; t++)
            console.log("%5d ,", this._$BP[t]);
          console.log("\n  _$5i _$30");
          for (var t = 0; t < this._$Eo.length; t++) {
            console.log("\n    _$30[%d] = ", t);
            for (var i = this._$Eo[t], e = 0; e < i.length; e++)
              console.log("%6.2f, ", i[e])
          }
          console.log("\n")
        },
        $t.prototype._$72 = function (t) {
          return null == this._$5P ? null : this._$5P[t]
        },
        $t.prototype.getIndexArray = function () {
          return this._$BP
        },
        ut.prototype = new Mt,
        ut.prototype.getTransformedPoints = function () {
          return null != this._$hr ? this._$hr : this._$Cr
        },
        pt.prototype._$HT = function (t) {
          this.x = t.x,
            this.y = t.y
        },
        pt.prototype._$HT = function (t, i) {
          this.x = t,
            this.y = i
        },
        ft.prototype = new i,
        ft.loadModel = function (t) {
          var e = new ft;
          return i._$62(e, t),
            e
        },
        ft.loadModel = function (t, e) {
          var r = e || 0,
            o = new ft(r);
          return i._$62(o, t),
            o
        },
        ft._$to = function () {
          return new ft
        },
        ft._$er = function (t) {
          var i = new _$5("../_$_r/_$t0/_$Ri/_$_P._$d");
          if (0 == i.exists())
            throw new _$ls("_$t0 _$_ _$6 _$Ui :: " + i._$PL());
          for (var e = ["../_$_r/_$t0/_$Ri/_$_P.512/_$CP._$1", "../_$_r/_$t0/_$Ri/_$_P.512/_$vP._$1", "../_$_r/_$t0/_$Ri/_$_P.512/_$EP._$1", "../_$_r/_$t0/_$Ri/_$_P.512/_$pP._$1"], r = ft.loadModel(i._$3b()), o = 0; o < e.length; o++) {
            var n = new _$5(e[o]);
            if (0 == n.exists())
              throw new _$ls("_$t0 _$_ _$6 _$Ui :: " + n._$PL());
            r.setTexture(o, _$nL._$_o(t, n._$3b()))
          }
          return r
        },
        ft.prototype.setGL = function (t) {
          at.setGL(t)
        },
        ft.prototype.setTransform = function (t) {
          this.drawParamWebGL.setTransform(t)
        },
        ft.prototype.update = function () {
          this._$5S.update(),
            this._$5S.preDraw(this.drawParamWebGL)
        },
        ft.prototype.draw = function () {
          this._$5S.draw(this.drawParamWebGL)
        },
        ft.prototype._$K2 = function () {
          this.drawParamWebGL._$K2()
        },
        ft.prototype.setTexture = function (t, i) {
          null == this.drawParamWebGL && _._$li("_$Yi for QT _$ki / _$XS() is _$6 _$ui!!"),
            this.drawParamWebGL.setTexture(t, i)
        },
        ft.prototype.setTexture = function (t, i) {
          null == this.drawParamWebGL && _._$li("_$Yi for QT _$ki / _$XS() is _$6 _$ui!!"),
            this.drawParamWebGL.setTexture(t, i)
        },
        ft.prototype._$Rs = function () {
          return this.drawParamWebGL._$Rs()
        },
        ft.prototype._$Ds = function (t) {
          this.drawParamWebGL._$Ds(t)
        },
        ft.prototype.getDrawParam = function () {
          return this.drawParamWebGL
        },
        ft.prototype.setMatrix = function (t) {
          this.drawParamWebGL.setMatrix(t)
        },
        ft.prototype.setPremultipliedAlpha = function (t) {
          this.drawParamWebGL.setPremultipliedAlpha(t)
        },
        ft.prototype.isPremultipliedAlpha = function () {
          return this.drawParamWebGL.isPremultipliedAlpha()
        },
        ft.prototype.setAnisotropy = function (t) {
          this.drawParamWebGL.setAnisotropy(t)
        },
        ft.prototype.getAnisotropy = function () {
          return this.drawParamWebGL.getAnisotropy()
        },
        ct.prototype._$tb = function () {
          return this.motions
        },
        ct.prototype.startMotion = function (t, i) {
          for (var e = null, r = this.motions.length, o = 0; o < r; ++o)
            null != (e = this.motions[o]) && (e._$qS(e._$w0.getFadeOut()),
              this._$eb && _._$Ji("MotionQueueManager[size:%2d]->startMotion() / start _$K _$3 (m%d)\n", r, e._$sr));
          if (null == t)
            return -1;
          e = new dt,
            e._$w0 = t,
            this.motions.push(e);
          var n = e._$sr;
          return this._$eb && _._$Ji("MotionQueueManager[size:%2d]->startMotion() / new _$w0 (m%d)\n", r, n),
            n
        },
        ct.prototype.updateParam = function (t) {
          try {
            for (var i = !1, e = 0; e < this.motions.length; e++) {
              var r = this.motions[e];
              if (null != r) {
                var o = r._$w0;
                null != o ? (o.updateParam(t, r),
                  i = !0,
                  r.isFinished() && (this._$eb && _._$Ji("MotionQueueManager[size:%2d]->updateParam() / _$T0 _$w0 (m%d)\n", this.motions.length - 1, r._$sr),
                    this.motions.splice(e, 1),
                    e--)) : (this.motions = this.motions.splice(e, 1),
                  e--)
              } else
                this.motions.splice(e, 1),
                e--
            }
            return i
          } catch (t) {
            return _._$li(t),
              !0
          }
        },
        ct.prototype.isFinished = function (t) {
          if (arguments.length >= 1) {
            for (var i = 0; i < this.motions.length; i++) {
              var e = this.motions[i];
              if (null != e && (e._$sr == t && !e.isFinished()))
                return !1
            }
            return !0
          }
          for (var i = 0; i < this.motions.length; i++) {
            var e = this.motions[i];
            if (null != e) {
              if (null != e._$w0) {
                if (!e.isFinished())
                  return !1
              } else
                this.motions.splice(i, 1),
                i--
            } else
              this.motions.splice(i, 1),
              i--
          }
          return !0
        },
        ct.prototype.stopAllMotions = function () {
          for (var t = 0; t < this.motions.length; t++) {
            var i = this.motions[t];
            if (null != i) {
              i._$w0;
              this.motions.splice(t, 1),
                t--
            } else
              this.motions.splice(t, 1),
              t--
          }
        },
        ct.prototype._$Zr = function (t) {
          this._$eb = t
        },
        ct.prototype._$e = function () {
          console.log("-- _$R --\n");
          for (var t = 0; t < this.motions.length; t++) {
            var i = this.motions[t],
              e = i._$w0;
            console.log("MotionQueueEnt[%d] :: %s\n", this.motions.length, e.toString())
          }
        },
        dt._$Gs = 0,
        dt.prototype.isFinished = function () {
          return this._$9L
        },
        dt.prototype._$qS = function (t) {
          var i = w.getUserTimeMSec(),
            e = i + t;
          (this._$Do < 0 || e < this._$Do) && (this._$Do = e)
        },
        dt.prototype._$Bs = function () {
          return this._$sr
        },
        gt.prototype.setContext = function (t) {
          var i = this.m;
          t.transform(i[0], i[1], i[3], i[4], i[6], i[7])
        },
        gt.prototype.toString = function () {
          for (var t = "LDTransform { ", i = 0; i < 9; i++)
            t += this.m[i].toFixed(2) + " ,";
          return t += " }"
        },
        gt.prototype.identity = function () {
          var t = this.m;
          t[0] = t[4] = t[8] = 1,
            t[1] = t[2] = t[3] = t[5] = t[6] = t[7] = 0
        },
        gt.prototype._$PS = function (t, i, e) {
          null == e && (e = new Array(0, 0));
          var r = this.m;
          return e[0] = r[0] * t + r[3] * i + r[6],
            e[1] = r[1] * t + r[4] * i + r[7],
            e
        },
        gt.prototype._$P2 = function (t) {
          t || (t = new gt);
          var i = this.m,
            e = i[0],
            r = i[1],
            o = i[2],
            n = i[3],
            s = i[4],
            _ = i[5],
            a = i[6],
            h = i[7],
            l = i[8],
            $ = e * s * l + r * _ * a + o * n * h - e * _ * h - o * s * a - r * n * l;
          if (0 == $)
            return null;
          var u = 1 / $;
          return t.m[0] = u * (s * l - h * _),
            t.m[1] = u * (h * o - r * l),
            t.m[2] = u * (r * _ - s * o),
            t.m[3] = u * (a * _ - n * l),
            t.m[4] = u * (e * l - a * o),
            t.m[5] = u * (n * o - e * _),
            t.m[6] = u * (n * h - a * s),
            t.m[7] = u * (a * r - e * h),
            t.m[8] = u * (e * s - n * r),
            t
        },
        gt.prototype.transform = function (t, i, e) {
          null == e && (e = new Array(0, 0));
          var r = this.m;
          return e[0] = r[0] * t + r[3] * i + r[6],
            e[1] = r[1] * t + r[4] * i + r[7],
            e
        },
        gt.prototype.translate = function (t, i) {
          var e = this.m;
          e[6] = e[0] * t + e[3] * i + e[6],
            e[7] = e[1] * t + e[4] * i + e[7],
            e[8] = e[2] * t + e[5] * i + e[8]
        },
        gt.prototype.scale = function (t, i) {
          var e = this.m;
          e[0] *= t,
            e[1] *= t,
            e[2] *= t,
            e[3] *= i,
            e[4] *= i,
            e[5] *= i
        },
        gt.prototype.shear = function (t, i) {
          var e = this.m,
            r = e[0] + e[3] * i,
            o = e[1] + e[4] * i,
            n = e[2] + e[5] * i;
          e[3] = e[0] * t + e[3],
            e[4] = e[1] * t + e[4],
            e[5] = e[2] * t + e[5],
            e[0] = r,
            e[1] = o,
            e[2] = n
        },
        gt.prototype.rotate = function (t) {
          var i = this.m,
            e = Math.cos(t),
            r = Math.sin(t),
            o = i[0] * e + i[3] * r,
            n = i[1] * e + i[4] * r,
            s = i[2] * e + i[5] * r;
          i[3] = -i[0] * r + i[3] * e,
            i[4] = -i[1] * r + i[4] * e,
            i[5] = -i[2] * r + i[5] * e,
            i[0] = o,
            i[1] = n,
            i[2] = s
        },
        gt.prototype.concatenate = function (t) {
          var i = this.m,
            e = t.m,
            r = i[0] * e[0] + i[3] * e[1] + i[6] * e[2],
            o = i[1] * e[0] + i[4] * e[1] + i[7] * e[2],
            n = i[2] * e[0] + i[5] * e[1] + i[8] * e[2],
            s = i[0] * e[3] + i[3] * e[4] + i[6] * e[5],
            _ = i[1] * e[3] + i[4] * e[4] + i[7] * e[5],
            a = i[2] * e[3] + i[5] * e[4] + i[8] * e[5],
            h = i[0] * e[6] + i[3] * e[7] + i[6] * e[8],
            l = i[1] * e[6] + i[4] * e[7] + i[7] * e[8],
            $ = i[2] * e[6] + i[5] * e[7] + i[8] * e[8];
          m[0] = r,
            m[1] = o,
            m[2] = n,
            m[3] = s,
            m[4] = _,
            m[5] = a,
            m[6] = h,
            m[7] = l,
            m[8] = $
        },
        yt.prototype = new et,
        yt._$eT = null,
        yt._$tP = new Object,
        yt._$2o = function () {
          return null == yt._$eT && (yt._$eT = yt.getID("DST_BASE")),
            yt._$eT
        },
        yt._$27 = function () {
          yt._$tP.clear(),
            yt._$eT = null
        },
        yt.getID = function (t) {
          var i = yt._$tP[t];
          return null == i && (i = new yt(t),
              yt._$tP[t] = i),
            i
        },
        yt.prototype._$3s = function () {
          return new yt
        },
        mt.prototype = new E,
        mt._$9r = function (t) {
          return new Float32Array(t)
        },
        mt._$vb = function (t) {
          return new Int16Array(t)
        },
        mt._$cr = function (t, i) {
          return null == t || t._$yL() < i.length ? (t = mt._$9r(2 * i.length),
              t.put(i),
              t._$oT(0)) : (t.clear(),
              t.put(i),
              t._$oT(0)),
            t
        },
        mt._$mb = function (t, i) {
          return null == t || t._$yL() < i.length ? (t = mt._$vb(2 * i.length),
              t.put(i),
              t._$oT(0)) : (t.clear(),
              t.put(i),
              t._$oT(0)),
            t
        },
        mt._$Hs = function () {
          return this._$Gr
        },
        mt._$as = function (t) {
          this._$Gr = t
        },
        mt.prototype.getGL = function () {
          return this.gl
        },
        mt.prototype.setGL = function (t) {
          this.gl = t
        },
        mt.prototype.setTransform = function (t) {
          this.transform = t
        },
        mt.prototype._$ZT = function () {
          var t = this.gl;
          this.firstDraw && (this.initShader(),
              this.firstDraw = !1,
              this.anisotropyExt = t.getExtension("EXT_texture_filter_anisotropic") || t.getExtension("WEBKIT_EXT_texture_filter_anisotropic") || t.getExtension("MOZ_EXT_texture_filter_anisotropic"),
              this.anisotropyExt && (this.maxAnisotropy = t.getParameter(this.anisotropyExt.MAX_TEXTURE_MAX_ANISOTROPY_EXT))),
            t.disable(t.SCISSOR_TEST),
            t.disable(t.STENCIL_TEST),
            t.disable(t.DEPTH_TEST),
            t.frontFace(t.CW),
            t.enable(t.BLEND),
            t.colorMask(1, 1, 1, 1),
            t.bindBuffer(t.ARRAY_BUFFER, null),
            t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, null)
        },
        mt.prototype._$Uo = function (t, i, e, r, o, n, s, _) {
          if (!(n < .01 && null == this.clipBufPre_clipContextMask)) {
            var a = (n > .9 && at.EXPAND_W,
              this.gl);
            if (null == this.gl)
              throw new Error("gl is null");
            var h = 1 * this._$C0 * n,
              l = 1 * this._$tT * n,
              $ = 1 * this._$WL * n,
              u = this._$lT * n;
            if (null != this.clipBufPre_clipContextMask) {
              a.frontFace(a.CCW),
                a.useProgram(this.shaderProgram),
                this._$vS = Tt(a, this._$vS, r),
                this._$no = Pt(a, this._$no, e),
                a.enableVertexAttribArray(this.a_position_Loc),
                a.vertexAttribPointer(this.a_position_Loc, 2, a.FLOAT, !1, 0, 0),
                this._$NT = Tt(a, this._$NT, o),
                a.activeTexture(a.TEXTURE1),
                a.bindTexture(a.TEXTURE_2D, this.textures[t]),
                a.uniform1i(this.s_texture0_Loc, 1),
                a.enableVertexAttribArray(this.a_texCoord_Loc),
                a.vertexAttribPointer(this.a_texCoord_Loc, 2, a.FLOAT, !1, 0, 0),
                a.uniformMatrix4fv(this.u_matrix_Loc, !1, this.getClipBufPre_clipContextMask().matrixForMask);
              var p = this.getClipBufPre_clipContextMask().layoutChannelNo,
                f = this.getChannelFlagAsColor(p);
              a.uniform4f(this.u_channelFlag, f.r, f.g, f.b, f.a);
              var c = this.getClipBufPre_clipContextMask().layoutBounds;
              a.uniform4f(this.u_baseColor_Loc, 2 * c.x - 1, 2 * c.y - 1, 2 * c._$EL() - 1, 2 * c._$5T() - 1),
                a.uniform1i(this.u_maskFlag_Loc, !0)
            } else if (null != this.getClipBufPre_clipContextDraw()) {
              a.useProgram(this.shaderProgramOff),
                this._$vS = Tt(a, this._$vS, r),
                this._$no = Pt(a, this._$no, e),
                a.enableVertexAttribArray(this.a_position_Loc_Off),
                a.vertexAttribPointer(this.a_position_Loc_Off, 2, a.FLOAT, !1, 0, 0),
                this._$NT = Tt(a, this._$NT, o),
                a.activeTexture(a.TEXTURE1),
                a.bindTexture(a.TEXTURE_2D, this.textures[t]),
                a.uniform1i(this.s_texture0_Loc_Off, 1),
                a.enableVertexAttribArray(this.a_texCoord_Loc_Off),
                a.vertexAttribPointer(this.a_texCoord_Loc_Off, 2, a.FLOAT, !1, 0, 0),
                a.uniformMatrix4fv(this.u_clipMatrix_Loc_Off, !1, this.getClipBufPre_clipContextDraw().matrixForDraw),
                a.uniformMatrix4fv(this.u_matrix_Loc_Off, !1, this.matrix4x4),
                a.activeTexture(a.TEXTURE2),
                a.bindTexture(a.TEXTURE_2D, at.fTexture[this.glno]),
                a.uniform1i(this.s_texture1_Loc_Off, 2);
              var p = this.getClipBufPre_clipContextDraw().layoutChannelNo,
                f = this.getChannelFlagAsColor(p);
              a.uniform4f(this.u_channelFlag_Loc_Off, f.r, f.g, f.b, f.a),
                a.uniform4f(this.u_baseColor_Loc_Off, h, l, $, u)
            } else
              a.useProgram(this.shaderProgram),
              this._$vS = Tt(a, this._$vS, r),
              this._$no = Pt(a, this._$no, e),
              a.enableVertexAttribArray(this.a_position_Loc),
              a.vertexAttribPointer(this.a_position_Loc, 2, a.FLOAT, !1, 0, 0),
              this._$NT = Tt(a, this._$NT, o),
              a.activeTexture(a.TEXTURE1),
              a.bindTexture(a.TEXTURE_2D, this.textures[t]),
              a.uniform1i(this.s_texture0_Loc, 1),
              a.enableVertexAttribArray(this.a_texCoord_Loc),
              a.vertexAttribPointer(this.a_texCoord_Loc, 2, a.FLOAT, !1, 0, 0),
              a.uniformMatrix4fv(this.u_matrix_Loc, !1, this.matrix4x4),
              a.uniform4f(this.u_baseColor_Loc, h, l, $, u),
              a.uniform1i(this.u_maskFlag_Loc, !1);
            this.culling ? this.gl.enable(a.CULL_FACE) : this.gl.disable(a.CULL_FACE),
              this.gl.enable(a.BLEND);
            var d, g, y, m;
            if (null != this.clipBufPre_clipContextMask)
              d = a.ONE,
              g = a.ONE_MINUS_SRC_ALPHA,
              y = a.ONE,
              m = a.ONE_MINUS_SRC_ALPHA;
            else
              switch (s) {
                case $t._$ms:
                  d = a.ONE,
                    g = a.ONE_MINUS_SRC_ALPHA,
                    y = a.ONE,
                    m = a.ONE_MINUS_SRC_ALPHA;
                  break;
                case $t._$ns:
                  d = a.ONE,
                    g = a.ONE,
                    y = a.ZERO,
                    m = a.ONE;
                  break;
                case $t._$_s:
                  d = a.DST_COLOR,
                    g = a.ONE_MINUS_SRC_ALPHA,
                    y = a.ZERO,
                    m = a.ONE
              }
            a.blendEquationSeparate(a.FUNC_ADD, a.FUNC_ADD),
              a.blendFuncSeparate(d, g, y, m),
              this.anisotropyExt && a.texParameteri(a.TEXTURE_2D, this.anisotropyExt.TEXTURE_MAX_ANISOTROPY_EXT, this.maxAnisotropy);
            var T = e.length;
            a.drawElements(a.TRIANGLES, T, a.UNSIGNED_SHORT, 0),
              a.bindTexture(a.TEXTURE_2D, null)
          }
        },
        mt.prototype._$Rs = function () {
          throw new Error("_$Rs")
        },
        mt.prototype._$Ds = function (t) {
          throw new Error("_$Ds")
        },
        mt.prototype._$K2 = function () {
          for (var t = 0; t < this.textures.length; t++) {
            0 != this.textures[t] && (this.gl._$K2(1, this.textures, t),
              this.textures[t] = null)
          }
        },
        mt.prototype.setTexture = function (t, i) {
          this.textures[t] = i
        },
        mt.prototype.initShader = function () {
          var t = this.gl;
          this.loadShaders2(),
            this.a_position_Loc = t.getAttribLocation(this.shaderProgram, "a_position"),
            this.a_texCoord_Loc = t.getAttribLocation(this.shaderProgram, "a_texCoord"),
            this.u_matrix_Loc = t.getUniformLocation(this.shaderProgram, "u_mvpMatrix"),
            this.s_texture0_Loc = t.getUniformLocation(this.shaderProgram, "s_texture0"),
            this.u_channelFlag = t.getUniformLocation(this.shaderProgram, "u_channelFlag"),
            this.u_baseColor_Loc = t.getUniformLocation(this.shaderProgram, "u_baseColor"),
            this.u_maskFlag_Loc = t.getUniformLocation(this.shaderProgram, "u_maskFlag"),
            this.a_position_Loc_Off = t.getAttribLocation(this.shaderProgramOff, "a_position"),
            this.a_texCoord_Loc_Off = t.getAttribLocation(this.shaderProgramOff, "a_texCoord"),
            this.u_matrix_Loc_Off = t.getUniformLocation(this.shaderProgramOff, "u_mvpMatrix"),
            this.u_clipMatrix_Loc_Off = t.getUniformLocation(this.shaderProgramOff, "u_ClipMatrix"),
            this.s_texture0_Loc_Off = t.getUniformLocation(this.shaderProgramOff, "s_texture0"),
            this.s_texture1_Loc_Off = t.getUniformLocation(this.shaderProgramOff, "s_texture1"),
            this.u_channelFlag_Loc_Off = t.getUniformLocation(this.shaderProgramOff, "u_channelFlag"),
            this.u_baseColor_Loc_Off = t.getUniformLocation(this.shaderProgramOff, "u_baseColor")
        },
        mt.prototype.disposeShader = function () {
          var t = this.gl;
          this.shaderProgram && (t.deleteProgram(this.shaderProgram),
              this.shaderProgram = null),
            this.shaderProgramOff && (t.deleteProgram(this.shaderProgramOff),
              this.shaderProgramOff = null)
        },
        mt.prototype.compileShader = function (t, i) {
          var e = this.gl,
            r = i,
            o = e.createShader(t);
          if (null == o)
            return _._$Ji("_$L0 to create shader"),
              null;
          if (e.shaderSource(o, r),
            e.compileShader(o),
            !e.getShaderParameter(o, e.COMPILE_STATUS)) {
            var n = e.getShaderInfoLog(o);
            return _._$Ji("_$L0 to compile shader : " + n),
              e.deleteShader(o),
              null
          }
          return o
        },
        mt.prototype.loadShaders2 = function () {
          var t = this.gl;
          if (this.shaderProgram = t.createProgram(),
            !this.shaderProgram)
            return !1;
          if (this.shaderProgramOff = t.createProgram(),
            !this.shaderProgramOff)
            return !1;
          if (this.vertShader = this.compileShader(t.VERTEX_SHADER, "attribute vec4     a_position;attribute vec2     a_texCoord;varying vec2       v_texCoord;varying vec4       v_ClipPos;uniform mat4       u_mvpMatrix;void main(){    gl_Position = u_mvpMatrix * a_position;    v_ClipPos = u_mvpMatrix * a_position;    v_texCoord = a_texCoord;}"),
            !this.vertShader)
            return _._$Ji("Vertex shader compile _$li!"),
              !1;
          if (this.vertShaderOff = this.compileShader(t.VERTEX_SHADER, "attribute vec4     a_position;attribute vec2     a_texCoord;varying vec2       v_texCoord;varying vec4       v_ClipPos;uniform mat4       u_mvpMatrix;uniform mat4       u_ClipMatrix;void main(){    gl_Position = u_mvpMatrix * a_position;    v_ClipPos = u_ClipMatrix * a_position;    v_texCoord = a_texCoord ;}"),
            !this.vertShaderOff)
            return _._$Ji("OffVertex shader compile _$li!"),
              !1;
          if (this.fragShader = this.compileShader(t.FRAGMENT_SHADER, "precision mediump float;varying vec2       v_texCoord;varying vec4       v_ClipPos;uniform sampler2D  s_texture0;uniform vec4       u_channelFlag;uniform vec4       u_baseColor;uniform bool       u_maskFlag;void main(){    vec4 smpColor;     if(u_maskFlag){        float isInside =             step(u_baseColor.x, v_ClipPos.x/v_ClipPos.w)          * step(u_baseColor.y, v_ClipPos.y/v_ClipPos.w)          * step(v_ClipPos.x/v_ClipPos.w, u_baseColor.z)          * step(v_ClipPos.y/v_ClipPos.w, u_baseColor.w);        smpColor = u_channelFlag * texture2D(s_texture0 , v_texCoord).a * isInside;    }else{        smpColor = texture2D(s_texture0 , v_texCoord) * u_baseColor;    }    gl_FragColor = smpColor;}"),
            !this.fragShader)
            return _._$Ji("Fragment shader compile _$li!"),
              !1;
          if (this.fragShaderOff = this.compileShader(t.FRAGMENT_SHADER, "precision mediump float ;varying vec2       v_texCoord;varying vec4       v_ClipPos;uniform sampler2D  s_texture0;uniform sampler2D  s_texture1;uniform vec4       u_channelFlag;uniform vec4       u_baseColor ;void main(){    vec4 col_formask = texture2D(s_texture0, v_texCoord) * u_baseColor;    vec4 clipMask = texture2D(s_texture1, v_ClipPos.xy / v_ClipPos.w) * u_channelFlag;    float maskVal = clipMask.r + clipMask.g + clipMask.b + clipMask.a;    col_formask = col_formask * maskVal;    gl_FragColor = col_formask;}"),
            !this.fragShaderOff)
            return _._$Ji("OffFragment shader compile _$li!"),
              !1;
          if (t.attachShader(this.shaderProgram, this.vertShader),
            t.attachShader(this.shaderProgram, this.fragShader),
            t.attachShader(this.shaderProgramOff, this.vertShaderOff),
            t.attachShader(this.shaderProgramOff, this.fragShaderOff),
            t.linkProgram(this.shaderProgram),
            t.linkProgram(this.shaderProgramOff),
            !t.getProgramParameter(this.shaderProgram, t.LINK_STATUS)) {
            var i = t.getProgramInfoLog(this.shaderProgram);
            return _._$Ji("_$L0 to link program: " + i),
              this.vertShader && (t.deleteShader(this.vertShader),
                this.vertShader = 0),
              this.fragShader && (t.deleteShader(this.fragShader),
                this.fragShader = 0),
              this.shaderProgram && (t.deleteProgram(this.shaderProgram),
                this.shaderProgram = 0),
              this.vertShaderOff && (t.deleteShader(this.vertShaderOff),
                this.vertShaderOff = 0),
              this.fragShaderOff && (t.deleteShader(this.fragShaderOff),
                this.fragShaderOff = 0),
              this.shaderProgramOff && (t.deleteProgram(this.shaderProgramOff),
                this.shaderProgramOff = 0),
              !1
          }
          return !0
        },
        mt.prototype.createFramebuffer = function () {
          var t = this.gl,
            i = at.clippingMaskBufferSize,
            e = t.createFramebuffer();
          t.bindFramebuffer(t.FRAMEBUFFER, e);
          var r = t.createRenderbuffer();
          t.bindRenderbuffer(t.RENDERBUFFER, r),
            t.renderbufferStorage(t.RENDERBUFFER, t.RGBA4, i, i),
            t.framebufferRenderbuffer(t.FRAMEBUFFER, t.COLOR_ATTACHMENT0, t.RENDERBUFFER, r);
          var o = t.createTexture();
          return t.bindTexture(t.TEXTURE_2D, o),
            t.texImage2D(t.TEXTURE_2D, 0, t.RGBA, i, i, 0, t.RGBA, t.UNSIGNED_BYTE, null),
            t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MIN_FILTER, t.LINEAR),
            t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MAG_FILTER, t.LINEAR),
            t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_S, t.CLAMP_TO_EDGE),
            t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_T, t.CLAMP_TO_EDGE),
            t.framebufferTexture2D(t.FRAMEBUFFER, t.COLOR_ATTACHMENT0, t.TEXTURE_2D, o, 0),
            t.bindTexture(t.TEXTURE_2D, null),
            t.bindRenderbuffer(t.RENDERBUFFER, null),
            t.bindFramebuffer(t.FRAMEBUFFER, null),
            at.fTexture[this.glno] = o, {
              framebuffer: e,
              renderbuffer: r,
              texture: at.fTexture[this.glno]
            }
        },
        St.prototype._$fP = function () {
          var t, i, e, r = this._$ST();
          if (0 == (128 & r))
            return 255 & r;
          if (0 == (128 & (t = this._$ST())))
            return (127 & r) << 7 | 127 & t;
          if (0 == (128 & (i = this._$ST())))
            return (127 & r) << 14 | (127 & t) << 7 | 255 & i;
          if (0 == (128 & (e = this._$ST())))
            return (127 & r) << 21 | (127 & t) << 14 | (127 & i) << 7 | 255 & e;
          throw new lt("_$L _$0P  _")
        },
        St.prototype.getFormatVersion = function () {
          return this._$S2
        },
        St.prototype._$gr = function (t) {
          this._$S2 = t
        },
        St.prototype._$3L = function () {
          return this._$fP()
        },
        St.prototype._$mP = function () {
          return this._$zT(),
            this._$F += 8,
            this._$T.getFloat64(this._$F - 8)
        },
        St.prototype._$_T = function () {
          return this._$zT(),
            this._$F += 4,
            this._$T.getFloat32(this._$F - 4)
        },
        St.prototype._$6L = function () {
          return this._$zT(),
            this._$F += 4,
            this._$T.getInt32(this._$F - 4)
        },
        St.prototype._$ST = function () {
          return this._$zT(),
            this._$T.getInt8(this._$F++)
        },
        St.prototype._$9T = function () {
          return this._$zT(),
            this._$F += 2,
            this._$T.getInt16(this._$F - 2)
        },
        St.prototype._$2T = function () {
          throw this._$zT(),
            this._$F += 8,
            new lt("_$L _$q read long")
        },
        St.prototype._$po = function () {
          return this._$zT(),
            0 != this._$T.getInt8(this._$F++)
        };
      var xt = !0;
      St.prototype._$bT = function () {
          this._$zT();
          var t = this._$3L(),
            i = null;
          if (xt)
            try {
              var e = new ArrayBuffer(2 * t);
              i = new Uint16Array(e);
              for (var r = 0; r < t; ++r)
                i[r] = this._$T.getUint8(this._$F++);
              return String.fromCharCode.apply(null, i)
            } catch (t) {
              xt = !1
            }
          try {
            var o = new Array;
            if (null == i)
              for (var r = 0; r < t; ++r)
                o[r] = this._$T.getUint8(this._$F++);
            else
              for (var r = 0; r < t; ++r)
                o[r] = i[r];
            return String.fromCharCode.apply(null, o)
          } catch (t) {
            console.log("read utf8 / _$rT _$L0 !! : " + t)
          }
        },
        St.prototype._$cS = function () {
          this._$zT();
          for (var t = this._$3L(), i = new Int32Array(t), e = 0; e < t; e++)
            i[e] = this._$T.getInt32(this._$F),
            this._$F += 4;
          return i
        },
        St.prototype._$Tb = function () {
          this._$zT();
          for (var t = this._$3L(), i = new Float32Array(t), e = 0; e < t; e++)
            i[e] = this._$T.getFloat32(this._$F),
            this._$F += 4;
          return i
        },
        St.prototype._$5b = function () {
          this._$zT();
          for (var t = this._$3L(), i = new Float64Array(t), e = 0; e < t; e++)
            i[e] = this._$T.getFloat64(this._$F),
            this._$F += 8;
          return i
        },
        St.prototype._$nP = function () {
          return this._$Jb(-1)
        },
        St.prototype._$Jb = function (t) {
          if (this._$zT(),
            t < 0 && (t = this._$3L()),
            t == G._$7P) {
            var i = this._$6L();
            if (0 <= i && i < this._$Ko.length)
              return this._$Ko[i];
            throw new lt("_$sL _$4i @_$m0")
          }
          var e = this._$4b(t);
          return this._$Ko.push(e),
            e
        },
        St.prototype._$4b = function (t) {
          if (0 == t)
            return null;
          if (50 == t) {
            var i = this._$bT(),
              e = b.getID(i);
            return e
          }
          if (51 == t) {
            var i = this._$bT(),
              e = yt.getID(i);
            return e
          }
          if (134 == t) {
            var i = this._$bT(),
              e = l.getID(i);
            return e
          }
          if (60 == t) {
            var i = this._$bT(),
              e = u.getID(i);
            return e
          }
          if (t >= 48) {
            var r = G._$9o(t);
            return null != r ? (r._$F0(this),
              r) : null
          }
          switch (t) {
            case 1:
              return this._$bT();
            case 10:
              return new n(this._$6L(), !0);
            case 11:
              return new S(this._$mP(), this._$mP(), this._$mP(), this._$mP());
            case 12:
              return new S(this._$_T(), this._$_T(), this._$_T(), this._$_T());
            case 13:
              return new L(this._$mP(), this._$mP());
            case 14:
              return new L(this._$_T(), this._$_T());
            case 15:
              for (var o = this._$3L(), e = new Array(o), s = 0; s < o; s++)
                e[s] = this._$nP();
              return e;
            case 17:
              var e = new F(this._$mP(), this._$mP(), this._$mP(), this._$mP(), this._$mP(), this._$mP());
              return e;
            case 21:
              return new h(this._$6L(), this._$6L(), this._$6L(), this._$6L());
            case 22:
              return new pt(this._$6L(), this._$6L());
            case 23:
              throw new Error("_$L _$ro ");
            case 16:
            case 25:
              return this._$cS();
            case 26:
              return this._$5b();
            case 27:
              return this._$Tb();
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
            case 7:
            case 8:
            case 9:
            case 18:
            case 19:
            case 20:
            case 24:
            case 28:
              throw new lt("_$6 _$q : _$nP() of 2-9 ,18,19,20,24,28 : " + t);
            default:
              throw new lt("_$6 _$q : _$nP() NO _$i : " + t)
          }
        },
        St.prototype._$8L = function () {
          return 0 == this._$hL ? this._$v0 = this._$ST() : 8 == this._$hL && (this._$v0 = this._$ST(),
              this._$hL = 0),
            1 == (this._$v0 >> 7 - this._$hL++ & 1)
        },
        St.prototype._$zT = function () {
          0 != this._$hL && (this._$hL = 0)
        },
        vt.prototype._$wP = function (t, i, e) {
          for (var r = 0; r < e; r++) {
            for (var o = 0; o < i; o++) {
              var n = 2 * (o + r * i);
              console.log("(% 7.3f , % 7.3f) , ", t[n], t[n + 1])
            }
            console.log("\n")
          }
          console.log("\n")
        },
        Lt._$2S = Math.PI / 180,
        Lt._$bS = Math.PI / 180,
        Lt._$wS = 180 / Math.PI,
        Lt._$NS = 180 / Math.PI,
        Lt.PI_F = Math.PI,
        Lt._$kT = [0, .012368, .024734, .037097, .049454, .061803, .074143, .086471, .098786, .111087, .12337, .135634, .147877, .160098, .172295, .184465, .196606, .208718, .220798, .232844, .244854, .256827, .268761, .280654, .292503, .304308, .316066, .327776, .339436, .351044, .362598, .374097, .385538, .396921, .408243, .419502, .430697, .441826, .452888, .463881, .474802, .485651, .496425, .507124, .517745, .528287, .538748, .549126, .559421, .56963, .579752, .589785, .599728, .609579, .619337, .629, .638567, .648036, .657406, .666676, .675843, .684908, .693867, .70272, .711466, .720103, .72863, .737045, .745348, .753536, .76161, .769566, .777405, .785125, .792725, .800204, .807561, .814793, .821901, .828884, .835739, .842467, .849066, .855535, .861873, .868079, .874153, .880093, .885898, .891567, .897101, .902497, .907754, .912873, .917853, .922692, .92739, .931946, .936359, .940629, .944755, .948737, .952574, .956265, .959809, .963207, .966457, .96956, .972514, .97532, .977976, .980482, .982839, .985045, .987101, .989006, .990759, .992361, .993811, .995109, .996254, .997248, .998088, .998776, .999312, .999694, .999924, 1],
        Lt._$92 = function (t, i) {
          var e = Math.atan2(t[1], t[0]),
            r = Math.atan2(i[1], i[0]);
          return Lt._$tS(e, r)
        },
        Lt._$tS = function (t, i) {
          for (var e = t - i; e < -Math.PI;)
            e += 2 * Math.PI;
          for (; e > Math.PI;)
            e -= 2 * Math.PI;
          return e
        },
        Lt._$9 = function (t) {
          return Math.sin(t)
        },
        Lt.fcos = function (t) {
          return Math.cos(t)
        },
        Mt.prototype._$u2 = function () {
          return this._$IS[0]
        },
        Mt.prototype._$yo = function () {
          return this._$AT && !this._$IS[0]
        },
        Mt.prototype._$GT = function () {
          return this._$e0
        },
        Et._$W2 = 0,
        Et.SYSTEM_INFO = null,
        Et.USER_AGENT = navigator.userAgent,
        Et.isIPhone = function () {
          return Et.SYSTEM_INFO || Et.setup(),
            Et.SYSTEM_INFO._isIPhone
        },
        Et.isIOS = function () {
          return Et.SYSTEM_INFO || Et.setup(),
            Et.SYSTEM_INFO._isIPhone || Et.SYSTEM_INFO._isIPad
        },
        Et.isAndroid = function () {
          return Et.SYSTEM_INFO || Et.setup(),
            Et.SYSTEM_INFO._isAndroid
        },
        Et.getOSVersion = function () {
          return Et.SYSTEM_INFO || Et.setup(),
            Et.SYSTEM_INFO.version
        },
        Et.getOS = function () {
          return Et.SYSTEM_INFO || Et.setup(),
            Et.SYSTEM_INFO._isIPhone || Et.SYSTEM_INFO._isIPad ? "iOS" : Et.SYSTEM_INFO._isAndroid ? "Android" : "_$Q0 OS"
        },
        Et.setup = function () {
          function t(t, i) {
            for (var e = t.substring(i).split(/[ _,;\.]/), r = 0, o = 0; o <= 2 && !isNaN(e[o]); o++) {
              var n = parseInt(e[o]);
              if (n < 0 || n > 999) {
                _._$li("err : " + n + " @UtHtml5.setup()"),
                  r = 0;
                break
              }
              r += n * Math.pow(1e3, 2 - o)
            }
            return r
          }
          var i, e = Et.USER_AGENT,
            r = Et.SYSTEM_INFO = {
              userAgent: e
            };
          if ((i = e.indexOf("iPhone OS ")) >= 0)
            r.os = "iPhone",
            r._isIPhone = !0,
            r.version = t(e, i + "iPhone OS ".length);
          else if ((i = e.indexOf("iPad")) >= 0) {
            if ((i = e.indexOf("CPU OS")) < 0)
              return void _._$li(" err : " + e + " @UtHtml5.setup()");
            r.os = "iPad",
              r._isIPad = !0,
              r.version = t(e, i + "CPU OS ".length)
          } else
            (i = e.indexOf("Android")) >= 0 ? (r.os = "Android",
              r._isAndroid = !0,
              r.version = t(e, i + "Android ".length)) : (r.os = "-",
              r.version = -1)
        },
        window.UtSystem = w,
        window.UtDebug = _,
        window.LDTransform = gt,
        window.LDGL = nt,
        window.Live2D = at,
        window.Live2DModelWebGL = ft,
        window.Live2DModelJS = q,
        window.Live2DMotion = J,
        window.MotionQueueManager = ct,
        window.PhysicsHair = f,
        window.AMotion = s,
        window.PartsDataID = l,
        window.DrawDataID = b,
        window.BaseDataID = yt,
        window.ParamID = u,
        at.init();
      var At = !1
    }()
  }).call(i, e(7))
}, function (t, i) {
  t.exports = {
    import: function () {
      throw new Error("System.import cannot be used indirectly")
    }
  }
}, function (t, i, e) {
  "use strict";

  function r(t) {
    return t && t.__esModule ? t : {
      default: t
    }
  }

  function o() {
    this.models = [],
      this.count = -1,
      this.reloadFlg = !1,
      Live2D.init(),
      n.Live2DFramework.setPlatformManager(new _.default)
  }
  Object.defineProperty(i, "__esModule", {
      value: !0
    }),
    i.default = o;
  var n = e(0),
    s = e(9),
    _ = r(s),
    a = e(10),
    h = r(a),
    l = e(1),
    $ = r(l);
  o.prototype.createModel = function () {
      var t = new h.default;
      return this.models.push(t),
        t
    },
    o.prototype.changeModel = function (t, i) {
      if (this.reloadFlg) {
        this.reloadFlg = !1;
        this.releaseModel(0, t),
          this.createModel(),
          this.models[0].load(t, i)
      }
    },
    o.prototype.getModel = function (t) {
      return t >= this.models.length ? null : this.models[t]
    },
    o.prototype.releaseModel = function (t, i) {
      this.models.length <= t || (this.models[t].release(i),
        delete this.models[t],
        this.models.splice(t, 1))
    },
    o.prototype.numModels = function () {
      return this.models.length
    },
    o.prototype.setDrag = function (t, i) {
      for (var e = 0; e < this.models.length; e++)
        this.models[e].setDrag(t, i)
    },
    o.prototype.maxScaleEvent = function () {
      $.default.DEBUG_LOG && console.log("Max scale event.");
      for (var t = 0; t < this.models.length; t++)
        this.models[t].startRandomMotion($.default.MOTION_GROUP_PINCH_IN, $.default.PRIORITY_NORMAL)
    },
    o.prototype.minScaleEvent = function () {
      $.default.DEBUG_LOG && console.log("Min scale event.");
      for (var t = 0; t < this.models.length; t++)
        this.models[t].startRandomMotion($.default.MOTION_GROUP_PINCH_OUT, $.default.PRIORITY_NORMAL)
    },
    o.prototype.tapEvent = function (t, i) {
      $.default.DEBUG_LOG && console.log("tapEvent view x:" + t + " y:" + i);
      for (var e = 0; e < this.models.length; e++)
        this.models[e].hitTest($.default.HIT_AREA_HEAD, t, i) ? ($.default.DEBUG_LOG && console.log("Tap face."),
          this.models[e].setRandomExpression()) : this.models[e].hitTest($.default.HIT_AREA_BODY, t, i) ? ($.default.DEBUG_LOG && console.log("Tap body. models[" + e + "]"),
          this.models[e].startRandomMotion($.default.MOTION_GROUP_TAP_BODY, $.default.PRIORITY_NORMAL)) : this.models[e].hitTestCustom("head", t, i) ? ($.default.DEBUG_LOG && console.log("Tap face."),
          this.models[e].startRandomMotion($.default.MOTION_GROUP_FLICK_HEAD, $.default.PRIORITY_NORMAL)) : this.models[e].hitTestCustom("body", t, i) && ($.default.DEBUG_LOG && console.log("Tap body. models[" + e + "]"),
          this.models[e].startRandomMotion($.default.MOTION_GROUP_TAP_BODY, $.default.PRIORITY_NORMAL));
      return !0
    }
}, function (t, i, e) {
  "use strict";

  function r() {}
  Object.defineProperty(i, "__esModule", {
      value: !0
    }),
    i.default = r;
  var o = e(2);
  r.prototype.loadBytes = function (t, i) {
      var e = new XMLHttpRequest;
      e.open("GET", t, !0),
        e.responseType = "arraybuffer",
        e.onload = function () {
          switch (e.status) {
            case 200:
              i(e.response);
              break;
            default:
              console.error("Failed to load (" + e.status + ") : " + t)
          }
        },
        e.send(null)
    },
    r.prototype.loadString = function (t) {
      this.loadBytes(t, function (t) {
        return t
      })
    },
    r.prototype.loadLive2DModel = function (t, i) {
      var e = null;
      this.loadBytes(t, function (t) {
        e = Live2DModelWebGL.loadModel(t),
          i(e)
      })
    },
    r.prototype.loadTexture = function (t, i, e, r) {
      var n = new Image;
      n.crossOrigin = "Anonymous",
        n.src = e;
      n.onload = function () {
          var e = (0,
              o.getContext)(),
            s = e.createTexture();
          if (!s)
            return console.error("Failed to generate gl texture name."),
              -1;
          0 == t.isPremultipliedAlpha() && e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL, 1),
            e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL, 1),
            e.activeTexture(e.TEXTURE0),
            e.bindTexture(e.TEXTURE_2D, s),
            e.texImage2D(e.TEXTURE_2D, 0, e.RGBA, e.RGBA, e.UNSIGNED_BYTE, n),
            e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MAG_FILTER, e.LINEAR),
            e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, e.LINEAR_MIPMAP_NEAREST),
            e.generateMipmap(e.TEXTURE_2D),
            t.setTexture(i, s),
            s = null,
            "function" == typeof r && r()
        },
        n.onerror = function () {
          console.error("Failed to load image : " + e)
        }
    },
    r.prototype.jsonParseFromBytes = function (t) {
      var i, e = new Uint8Array(t, 0, 3);
      return i = 239 == e[0] && 187 == e[1] && 191 == e[2] ? String.fromCharCode.apply(null, new Uint8Array(t, 3)) : String.fromCharCode.apply(null, new Uint8Array(t)),
        JSON.parse(i)
    },
    r.prototype.log = function (t) {}
}, function (t, i, e) {
  "use strict";

  function r(t) {
    return t && t.__esModule ? t : {
      default: t
    }
  }

  function o() {
    n.L2DBaseModel.prototype.constructor.call(this),
      this.modelHomeDir = "",
      this.modelSetting = null,
      this.tmpMatrix = []
  }
  Object.defineProperty(i, "__esModule", {
      value: !0
    }),
    i.default = o;
  var n = e(0),
    s = e(11),
    _ = r(s),
    a = e(1),
    h = r(a),
    l = e(3),
    $ = r(l);
  o.prototype = new n.L2DBaseModel,
    o.prototype.load = function (t, i, e) {
      this.setUpdating(!0),
        this.setInitialized(!1),
        this.modelHomeDir = i.substring(0, i.lastIndexOf("/") + 1),
        this.modelSetting = new _.default;
      var r = this;
      this.modelSetting.loadModelSetting(i, function () {
        var t = r.modelHomeDir + r.modelSetting.getModelFile();
        r.loadModelData(t, function (t) {
          for (var i = 0; i < r.modelSetting.getTextureNum(); i++) {
            if (/^https?:\/\/|^\/\//i.test(r.modelSetting.getTextureFile(i)))
              var o = r.modelSetting.getTextureFile(i);
            else
              var o = r.modelHomeDir + r.modelSetting.getTextureFile(i);
            r.loadTexture(i, o, function () {
              if (r.isTexLoaded) {
                if (r.modelSetting.getExpressionNum() > 0) {
                  r.expressions = {};
                  for (var t = 0; t < r.modelSetting.getExpressionNum(); t++) {
                    var i = r.modelSetting.getExpressionName(t),
                      o = r.modelHomeDir + r.modelSetting.getExpressionFile(t);
                    r.loadExpression(i, o)
                  }
                } else
                  r.expressionManager = null,
                  r.expressions = {};
                if (r.eyeBlink,
                  null != r.modelSetting.getPhysicsFile() ? r.loadPhysics(r.modelHomeDir + r.modelSetting.getPhysicsFile()) : r.physics = null,
                  null != r.modelSetting.getPoseFile() ? r.loadPose(r.modelHomeDir + r.modelSetting.getPoseFile(), function () {
                    r.pose.updateParam(r.live2DModel)
                  }) : r.pose = null,
                  null != r.modelSetting.getLayout()) {
                  var n = r.modelSetting.getLayout();
                  null != n.width && r.modelMatrix.setWidth(n.width),
                    null != n.height && r.modelMatrix.setHeight(n.height),
                    null != n.x && r.modelMatrix.setX(n.x),
                    null != n.y && r.modelMatrix.setY(n.y),
                    null != n.center_x && r.modelMatrix.centerX(n.center_x),
                    null != n.center_y && r.modelMatrix.centerY(n.center_y),
                    null != n.top && r.modelMatrix.top(n.top),
                    null != n.bottom && r.modelMatrix.bottom(n.bottom),
                    null != n.left && r.modelMatrix.left(n.left),
                    null != n.right && r.modelMatrix.right(n.right)
                }
                if (null != r.modelSetting.getHitAreasCustom()) {
                  var s = r.modelSetting.getHitAreasCustom();
                  null != s.head_x && (h.default.hit_areas_custom_head_x = s.head_x),
                    null != s.head_y && (h.default.hit_areas_custom_head_y = s.head_y),
                    null != s.body_x && (h.default.hit_areas_custom_body_x = s.body_x),
                    null != s.body_y && (h.default.hit_areas_custom_body_y = s.body_y)
                }
                for (var t = 0; t < r.modelSetting.getInitParamNum(); t++)
                  r.live2DModel.setParamFloat(r.modelSetting.getInitParamID(t), r.modelSetting.getInitParamValue(t));
                for (var t = 0; t < r.modelSetting.getInitPartsVisibleNum(); t++)
                  r.live2DModel.setPartsOpacity(r.modelSetting.getInitPartsVisibleID(t), r.modelSetting.getInitPartsVisibleValue(t));
                r.live2DModel.saveParam(),
                  r.preloadMotionGroup(h.default.MOTION_GROUP_IDLE),
                  r.preloadMotionGroup(h.default.MOTION_GROUP_SLEEPY),
                  r.mainMotionManager.stopAllMotions(),
                  r.setUpdating(!1),
                  r.setInitialized(!0),
                  "function" == typeof e && e()
              }
            })
          }
        })
      })
    },
    o.prototype.release = function (t) {
      var i = n.Live2DFramework.getPlatformManager();
      t.deleteTexture(i.texture)
    },
    o.prototype.preloadMotionGroup = function (t) {
      for (var i = this, e = 0; e < this.modelSetting.getMotionNum(t); e++) {
        var r = this.modelSetting.getMotionFile(t, e);
        this.loadMotion(r, this.modelHomeDir + r, function (r) {
          r.setFadeIn(i.modelSetting.getMotionFadeIn(t, e)),
            r.setFadeOut(i.modelSetting.getMotionFadeOut(t, e))
        })
      }
    },
    o.prototype.update = function () {
      if (null == this.live2DModel)
        return void(h.default.DEBUG_LOG && console.error("Failed to update."));
      var t = UtSystem.getUserTimeMSec() - this.startTimeMSec,
        i = t / 1e3,
        e = 2 * i * Math.PI;
      if (this.mainMotionManager.isFinished()) {
        "1" === sessionStorage.getItem("Sleepy") ? this.startRandomMotion(h.default.MOTION_GROUP_SLEEPY, h.default.PRIORITY_SLEEPY) : this.startRandomMotion(h.default.MOTION_GROUP_IDLE, h.default.PRIORITY_IDLE)
      }
      this.live2DModel.loadParam(),
        this.mainMotionManager.updateParam(this.live2DModel) || null != this.eyeBlink && this.eyeBlink.updateParam(this.live2DModel),
        this.live2DModel.saveParam(),
        null == this.expressionManager || null == this.expressions || this.expressionManager.isFinished() || this.expressionManager.updateParam(this.live2DModel),
        this.live2DModel.addToParamFloat("PARAM_ANGLE_X", 30 * this.dragX, 1),
        this.live2DModel.addToParamFloat("PARAM_ANGLE_Y", 30 * this.dragY, 1),
        this.live2DModel.addToParamFloat("PARAM_ANGLE_Z", this.dragX * this.dragY * -30, 1),
        this.live2DModel.addToParamFloat("PARAM_BODY_ANGLE_X", 10 * this.dragX, 1),
        this.live2DModel.addToParamFloat("PARAM_EYE_BALL_X", this.dragX, 1),
        this.live2DModel.addToParamFloat("PARAM_EYE_BALL_Y", this.dragY, 1),
        this.live2DModel.addToParamFloat("PARAM_ANGLE_X", Number(15 * Math.sin(e / 6.5345)), .5),
        this.live2DModel.addToParamFloat("PARAM_ANGLE_Y", Number(8 * Math.sin(e / 3.5345)), .5),
        this.live2DModel.addToParamFloat("PARAM_ANGLE_Z", Number(10 * Math.sin(e / 5.5345)), .5),
        this.live2DModel.addToParamFloat("PARAM_BODY_ANGLE_X", Number(4 * Math.sin(e / 15.5345)), .5),
        this.live2DModel.setParamFloat("PARAM_BREATH", Number(.5 + .5 * Math.sin(e / 3.2345)), 1),
        null != this.physics && this.physics.updateParam(this.live2DModel),
        null == this.lipSync && this.live2DModel.setParamFloat("PARAM_MOUTH_OPEN_Y", this.lipSyncValue),
        null != this.pose && this.pose.updateParam(this.live2DModel),
        this.live2DModel.update()
    },
    o.prototype.setRandomExpression = function () {
      var t = [];
      for (var i in this.expressions)
        t.push(i);
      var e = parseInt(Math.random() * t.length);
      this.setExpression(t[e])
    },
    o.prototype.startRandomMotion = function (t, i) {
      var e = this.modelSetting.getMotionNum(t),
        r = parseInt(Math.random() * e);
      this.startMotion(t, r, i)
    },
    o.prototype.startMotion = function (t, i, e) {
      var r = this.modelSetting.getMotionFile(t, i);
      if (null == r || "" == r)
        return void(h.default.DEBUG_LOG && console.error("Failed to motion."));
      if (e == h.default.PRIORITY_FORCE)
        this.mainMotionManager.setReservePriority(e);
      else if (!this.mainMotionManager.reserveMotion(e))
        return void(h.default.DEBUG_LOG && console.log("Motion is running."));
      var o, n = this;
      null == this.motions[t] ? this.loadMotion(null, this.modelHomeDir + r, function (r) {
        o = r,
          n.setFadeInFadeOut(t, i, e, o)
      }) : (o = this.motions[t],
        n.setFadeInFadeOut(t, i, e, o))
    },
    o.prototype.setFadeInFadeOut = function (t, i, e, r) {
      var o = this.modelSetting.getMotionFile(t, i);
      if (r.setFadeIn(this.modelSetting.getMotionFadeIn(t, i)),
        r.setFadeOut(this.modelSetting.getMotionFadeOut(t, i)),
        h.default.DEBUG_LOG && console.log("Start motion : " + o),
        null == this.modelSetting.getMotionSound(t, i))
        this.mainMotionManager.startMotionPrio(r, e);
      else {
        var n = this.modelSetting.getMotionSound(t, i),
          s = document.createElement("audio");
        s.src = this.modelHomeDir + n,
          h.default.DEBUG_LOG && console.log("Start sound : " + n),
          s.play(),
          this.mainMotionManager.startMotionPrio(r, e)
      }
    },
    o.prototype.setExpression = function (t) {
      var i = this.expressions[t];
      h.default.DEBUG_LOG && console.log("Expression : " + t),
        this.expressionManager.startMotion(i, !1)
    },
    o.prototype.draw = function (t) {
      $.default.push(),
        $.default.multMatrix(this.modelMatrix.getArray()),
        this.tmpMatrix = $.default.getMatrix(),
        this.live2DModel.setMatrix(this.tmpMatrix),
        this.live2DModel.draw(),
        $.default.pop()
    },
    o.prototype.hitTest = function (t, i, e) {
      for (var r = this.modelSetting.getHitAreaNum(), o = 0; o < r; o++)
        if (t == this.modelSetting.getHitAreaName(o)) {
          var n = this.modelSetting.getHitAreaID(o);
          return this.hitTestSimple(n, i, e)
        }
      return !1
    },
    o.prototype.hitTestCustom = function (t, i, e) {
      return "head" == t ? this.hitTestSimpleCustom(h.default.hit_areas_custom_head_x, h.default.hit_areas_custom_head_y, i, e) : "body" == t && this.hitTestSimpleCustom(h.default.hit_areas_custom_body_x, h.default.hit_areas_custom_body_y, i, e)
    }
}, function (t, i, e) {
  "use strict";

  function r() {
    this.NAME = "name",
      this.ID = "id",
      this.MODEL = "model",
      this.TEXTURES = "textures",
      this.HIT_AREAS = "hit_areas",
      this.PHYSICS = "physics",
      this.POSE = "pose",
      this.EXPRESSIONS = "expressions",
      this.MOTION_GROUPS = "motions",
      this.SOUND = "sound",
      this.FADE_IN = "fade_in",
      this.FADE_OUT = "fade_out",
      this.LAYOUT = "layout",
      this.HIT_AREAS_CUSTOM = "hit_areas_custom",
      this.INIT_PARAM = "init_param",
      this.INIT_PARTS_VISIBLE = "init_parts_visible",
      this.VALUE = "val",
      this.FILE = "file",
      this.json = {}
  }
  Object.defineProperty(i, "__esModule", {
      value: !0
    }),
    i.default = r;
  var o = e(0);
  r.prototype.loadModelSetting = function (t, i) {
      var e = this;
      o.Live2DFramework.getPlatformManager().loadBytes(t, function (t) {
        var r = String.fromCharCode.apply(null, new Uint8Array(t));
        e.json = JSON.parse(r),
          i()
      })
    },
    r.prototype.getTextureFile = function (t) {
      return null == this.json[this.TEXTURES] || null == this.json[this.TEXTURES][t] ? null : this.json[this.TEXTURES][t]
    },
    r.prototype.getModelFile = function () {
      return this.json[this.MODEL]
    },
    r.prototype.getTextureNum = function () {
      return null == this.json[this.TEXTURES] ? 0 : this.json[this.TEXTURES].length
    },
    r.prototype.getHitAreaNum = function () {
      return null == this.json[this.HIT_AREAS] ? 0 : this.json[this.HIT_AREAS].length
    },
    r.prototype.getHitAreaID = function (t) {
      return null == this.json[this.HIT_AREAS] || null == this.json[this.HIT_AREAS][t] ? null : this.json[this.HIT_AREAS][t][this.ID]
    },
    r.prototype.getHitAreaName = function (t) {
      return null == this.json[this.HIT_AREAS] || null == this.json[this.HIT_AREAS][t] ? null : this.json[this.HIT_AREAS][t][this.NAME]
    },
    r.prototype.getPhysicsFile = function () {
      return this.json[this.PHYSICS]
    },
    r.prototype.getPoseFile = function () {
      return this.json[this.POSE]
    },
    r.prototype.getExpressionNum = function () {
      return null == this.json[this.EXPRESSIONS] ? 0 : this.json[this.EXPRESSIONS].length
    },
    r.prototype.getExpressionFile = function (t) {
      return null == this.json[this.EXPRESSIONS] ? null : this.json[this.EXPRESSIONS][t][this.FILE]
    },
    r.prototype.getExpressionName = function (t) {
      return null == this.json[this.EXPRESSIONS] ? null : this.json[this.EXPRESSIONS][t][this.NAME]
    },
    r.prototype.getLayout = function () {
      return this.json[this.LAYOUT]
    },
    r.prototype.getHitAreasCustom = function () {
      return this.json[this.HIT_AREAS_CUSTOM]
    },
    r.prototype.getInitParamNum = function () {
      return null == this.json[this.INIT_PARAM] ? 0 : this.json[this.INIT_PARAM].length
    },
    r.prototype.getMotionNum = function (t) {
      return null == this.json[this.MOTION_GROUPS] || null == this.json[this.MOTION_GROUPS][t] ? 0 : this.json[this.MOTION_GROUPS][t].length
    },
    r.prototype.getMotionFile = function (t, i) {
      return null == this.json[this.MOTION_GROUPS] || null == this.json[this.MOTION_GROUPS][t] || null == this.json[this.MOTION_GROUPS][t][i] ? null : this.json[this.MOTION_GROUPS][t][i][this.FILE]
    },
    r.prototype.getMotionSound = function (t, i) {
      return null == this.json[this.MOTION_GROUPS] || null == this.json[this.MOTION_GROUPS][t] || null == this.json[this.MOTION_GROUPS][t][i] || null == this.json[this.MOTION_GROUPS][t][i][this.SOUND] ? null : this.json[this.MOTION_GROUPS][t][i][this.SOUND]
    },
    r.prototype.getMotionFadeIn = function (t, i) {
      return null == this.json[this.MOTION_GROUPS] || null == this.json[this.MOTION_GROUPS][t] || null == this.json[this.MOTION_GROUPS][t][i] || null == this.json[this.MOTION_GROUPS][t][i][this.FADE_IN] ? 1e3 : this.json[this.MOTION_GROUPS][t][i][this.FADE_IN]
    },
    r.prototype.getMotionFadeOut = function (t, i) {
      return null == this.json[this.MOTION_GROUPS] || null == this.json[this.MOTION_GROUPS][t] || null == this.json[this.MOTION_GROUPS][t][i] || null == this.json[this.MOTION_GROUPS][t][i][this.FADE_OUT] ? 1e3 : this.json[this.MOTION_GROUPS][t][i][this.FADE_OUT]
    },
    r.prototype.getInitParamID = function (t) {
      return null == this.json[this.INIT_PARAM] || null == this.json[this.INIT_PARAM][t] ? null : this.json[this.INIT_PARAM][t][this.ID]
    },
    r.prototype.getInitParamValue = function (t) {
      return null == this.json[this.INIT_PARAM] || null == this.json[this.INIT_PARAM][t] ? NaN : this.json[this.INIT_PARAM][t][this.VALUE]
    },
    r.prototype.getInitPartsVisibleNum = function () {
      return null == this.json[this.INIT_PARTS_VISIBLE] ? 0 : this.json[this.INIT_PARTS_VISIBLE].length
    },
    r.prototype.getInitPartsVisibleID = function (t) {
      return null == this.json[this.INIT_PARTS_VISIBLE] || null == this.json[this.INIT_PARTS_VISIBLE][t] ? null : this.json[this.INIT_PARTS_VISIBLE][t][this.ID]
    },
    r.prototype.getInitPartsVisibleValue = function (t) {
      return null == this.json[this.INIT_PARTS_VISIBLE] || null == this.json[this.INIT_PARTS_VISIBLE][t] ? NaN : this.json[this.INIT_PARTS_VISIBLE][t][this.VALUE]
    }
}]);
